Построение функции в R, где вход имеет длину 3 - PullRequest
0 голосов
/ 16 февраля 2020

Я пытаюсь построить функцию, которую я определил в терминах параметра x, и построить функцию по трем значениям x. Я получаю сообщение об ошибке, что длины отличаются.

Длина функции равна 1, а x равно 3.

l <- seq(0, 7)
p <- c(5, 2, 9, 4, 4, 1, 1, 0)
loglikGeo <- function(beta){sum(p*log(dgeom(l, beta)))}
beta <- seq(0.01, 0.40, 0.01)
plot(beta, loglikGeo)

Что происходит?

1 Ответ

1 голос
/ 16 февраля 2020

loglikGeo определяется как функция в вашем коде, поэтому вы не можете использовать ее в качестве аргумента для построения. Вам нужен вектор в вашем аргументе y в plot(). Чтобы применить функцию к каждому элементу вектора и вернуть вектор значений функции, вы можете использовать sapply(vector,function). Замените последнюю строку в вашем коде на:

loglikGeo_values <- sapply(beta,loglikGeo)
plot(beta, loklikGeo_values)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...