我正在运行以下代码并收到警告“要替换的项目数不是替换长度的倍数”。
我想创建一个函数,该函数根据 3 个标准(r>1e-6、r<-1e-6 和 1e-6>r>-1e-6)存储具有不同值的向量 l。这些值将基于函数的参数,然后将使用 nlm 命令最大化。
ll <- function(param, r, rm) {
a1 <- param[1]
a2 <- param[2]
b <- param[3]
sigma <- param[4]
nr <- length(r)
l <- vector("numeric",nr)
for (j in 1:nr) {
l[j] <- ifelse(r>1e-6, log(1/(2*pi*sigma^2)^(1/2)) - ((1/2)*sigma^2)*(r+a2-b*rm)^2,
ifelse(r<-1e-6, log(1/(2*pi*sigma^2)^(1/2)) - ((1/2)*sigma^2)*(r+a1-b*rm)^2,
log(pnorm((a2-b*rm)/sigma) - pnorm((a1-b*rm)/sigma))))
}
return(-sum(l))
}