以下是为bernoulli分布定义的功能。我是新的R用户。我不太了解以下代码。
dbernoulli <- function(x, prob=0.5) {
dbinom(x, size=1, prob=prob)
}
dbernoulli(y, prob=0.7)
我认为在已定义的函数中,我们已将参数prob
预先确定为0.5
,那么为什么我们在使用已定义的函数时将其更改为0.7
?这些代码是否合理?我可以按照以下方式更正吗?
dbernoulli <- function(x, prob) {
dbinom(x, size=1, prob=prob)
}
dbernoulli(y, prob=0.7)
答案 0 :(得分:2)
当您写下function(x, prob=0.5)
时,您说的是:
创建一个接收两个参数的函数,
x
,没有默认值prob
,默认值为0.5
。因此,如果您调用函数dbernoulli(y)
,它将分配x = y
并且因为您未传递prob
的值,它将分配prob = 0.5
,因为这是您为其定义的默认值。
现在,如果删除prob
的默认值,例如function(x, prob)
,那么您将始终需要在调用函数时声明要使用的概率,如{{1} }}