替代命令" for"

时间:2014-11-11 19:30:05

标签: r function for-loop

我创建了一个函数,其简单目标是在data.frame中生成一个新列,将预测值(在没有实际值的情况下)与实际值混合。但是当我在我的数据集中应用此功能时,这对于一个标志(1070125 obs。)来说是巨大的,该功能需要很长时间才能完成你的目标(30分钟)。 这是功能:

p <- function(object, newdata = NULL, type = c("link", "response", "terms"),
       rse.fit = FALSE, dispersion = NULL, terms = NULL,
       na.action = na.pass, ...) { 
  pred <- predict (object,newdata)
  vetor1 <- newdata$ALT
  vetor1[is.na(vetor1)] <- 0
  vetor2 <- pred
  for (i in 1:length(vetor1)) {
    if (vetor1[i]==0.00) {
      vetor1[i]=vetor2[i]
      newdata$ALTMISTA <- vetor1
    }
  }
return (newdata)
}

有人可以给我一个替代方案吗?谢谢。


抱歉,我输入的代码不正确。 这是可重复的代码。

p <- 
  function(object, newdata = NULL, type = c("link", "response", "terms"),
           rse.fit = FALSE, dispersion = NULL, terms = NULL,
           na.action = na.pass, ...)
  { 
{
    pred <- predict (object,newdata)

      }

    vetor1 <- (newdata$ALT)
vetor1[is.na(vetor1)] <- 0
    vetor2 <- c(pred)
    for(i in 1:length(vetor1)){
      if(vetor1[i]==0.00){
        vetor1[i]=vetor2[i]
        newdata$ALTMISTA <- vetor1
      }
    }
    return (newdata)
  }

0 个答案:

没有答案