2016-07-08 88 views
0

以下是爲bernoulli分配定義的功能。我是一位新的R用戶。我不太瞭解以下代碼。如何定義伯努利密度函數?

dbernoulli <- function(x, prob=0.5) { 
dbinom(x, size=1, prob=prob) 
} 

dbernoulli(y, prob=0.7) 

我在定義函數認爲,我們已經預先確定的參數prob0.5,那麼爲什麼我們可以把它改成0.7當我們使用定義的函數?這些代碼是否合理?我可以如下更正它嗎?

dbernoulli <- function(x, prob) { 
dbinom(x, size=1, prob=prob) 
} 

dbernoulli(y, prob=0.7) 

回答

2

當你寫function(x, prob=0.5)你說的是:

創建一個接收兩個參數的函數,

  • x,沒有默認值
  • prob,使用默認值的0.5

因此,如果你調用函數dbernoulli(y)將分配x = y因爲你沒有爲prob傳遞值,它會分配prob = 0.5,因爲這是你爲它定義的默認值。

現在,如果你prob刪除默認值,如function(x, prob),那麼你將永遠被要求說出你想要調用函數時,如dbernoulli(y,prob = 0.7)使用概率。

+0

也可能值得一提的是部分參數匹配以及按名稱和位置傳遞參數。即「dbernoulli(p = 0.7,x = y)」相當於「dbernoulli(y,0.7)」。 – N8TRO