R警告:要更换的项目数不是更换长度的倍数

时间:2015-03-23 17:39:53

标签: r vector warnings mle

我正在运行以下代码并收到警告"要替换的项目数不是替换长度的倍数。"

我想创建一个函数,它根据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))
}

0 个答案:

没有答案