我创建了一个函数,其简单目标是在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)
}