我有一个关于子集的问题。
基本上我有一个数据集。这个玩具数据集是一个很好的小例子:
df<- data.frame(year = c(1980:2019), randnorm = rnorm(40, 0, 1), count1 = rpois(40, 18),
lograndnorm=(rlnorm(40, 3, 2)))
对于2000年至2019年之间的每个年份值,我想删除每个年份的观察值,并输出不包括一年的df数据总数的子集。然后,我要删除年份并将其输入模型,然后使用其余数据来训练模型。
例如,subset_ex2010可能不包括2010。因此,除year = 2010之外的所有数据都进入subset_ex2010中,然后我可以使用该数据来预测2010。
一旦将这些参数输入到模型中,就会保存输出(在模型运行之后),并且循环会在第二年执行,也就是说,从完整的df数据框中删除2009年,并对其余部分进行子集化。
我尝试过:
for(i in 2000:2019){
subset_excl_[i] <- subset(df, year<i | year>i] )
subset_of_[i] <- subset(df, year==i] )
lmmod[i] <- lm(count1 ~ randnorm + lograndnorm, data=subset_excl_[i])
distPred[i] <- predict(lmmod[i], subset_of_[i])
}
和
for(i in 2000:2019){
subset_excl_[i] <- [df$year-i]
subset_of_[i] <- subset(df, year==i] )
lmmod[i] <- lm(count1 ~ randnorm + lograndnorm, data=subset_excl_[i])
distPred[i] <- predict(lmmod[i], subset_of_[i])
}
但都跌倒了。任何帮助将不胜感激。
我不知道线性编程。但。在您的两个代码块中
lmmod[i] <- lm(count1 ~ randnorm + lograndnorm, data=subset_excl_[i])
distPred[i] <- predict(lmMod[i], subset_of_[i])
您同时指lmmod
和lmMod
。 R区分大小写。
[如果仅靠它不能解决问题,请在循环的开头放置一个broswer()
调用,直到发现它爆炸的位置为止。