> dofloglik = function(v, x) { n <- length(x)
+ loglik <- n*lgamma((v+1)/2) - n*lgamma(v/2)
+ - (n/2)*log(v*pi) - ((v+1)/2)*sum(log(1+x^2/v))
+ return(-loglik) }
>
> dofloglik(1, 1:4)
[1] 2.28946
> dofloglik(1, 2:5)
[1] 2.28946
> dofloglik(1, 3:6)
[1] 2.28946
Это, вероятно, не то, что вы хотели.
Я подозреваю, что вам не нужно то, что вы разбили что-то на две строки. За исключением того, что каждая строка является допустимой командой, поэтому R выполняет первую строку самостоятельно.
+ loglik <- n*lgamma((v+1)/2) - n*lgamma(v/2)
+ - (n/2)*log(v*pi) - ((v+1)/2)*sum(log(1+x^2/v))
Итак, loglik <- n*lgamma((v+1)/2) - n*lgamma(v/2)
выполняется и является действительным, поэтому оно сохраняется в loglik. Вторая строка - (n/2)*log(v*pi) - ((v+1)/2)*sum(log(1+x^2/v))
действительна. Он выполняется, но ничего не хранит, и, поскольку мы не на верхнем уровне, он даже не печатает.
Вам также нужно убедиться, что конец вашей первой строки не приведет к завершениюоператор (добавив знак минус в конец первой строки) или сделайте что-нибудь еще, чтобы разделить это по-другому.