Как определить функцию плотности Бернулли?
Ниже приведена функция, определенная для распределения Бернулли. Я новый пользователь 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)
1 ответ
Когда ты пишешь 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)
,