0

以下是为伯努利分布定义的函数。我是新的 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)
4

1 回答 1

2

当你写function(x, prob=0.5)你说的是:

创建一个接收两个参数的函数,

  • x, 没有默认值
  • prob,默认值为0.5

因此,如果您调用dbernoulli(y)它将分配的函数,x = y并且因为您没有为 传递值prob,它将分配prob = 0.5,因为这是您为它定义的默认值。

prob现在,如果您删除, like的默认值function(x, prob),那么您将始终需要在调用函数时说明要使用的概率,如dbernoulli(y,prob = 0.7).

于 2016-07-08T10:00:19.420 回答