Как определить функцию плотности Бернулли?

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

Другие вопросы по тегам