循环中子集的不同实现

问题描述 投票:1回答:1

我有一个关于子集的问题。

基本上我有一个数据集。这个玩具数据集是一个很好的小例子:

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]) 
}

但都跌倒了。任何帮助将不胜感激。

r loops subset
1个回答
0
投票

我不知道线性编程。但。在您的两个代码块中

lmmod[i] <- lm(count1 ~ randnorm + lograndnorm, data=subset_excl_[i])
distPred[i] <- predict(lmMod[i], subset_of_[i]) 

您同时指lmmodlmMod。 R区分大小写。

[如果仅靠它不能解决问题,请在循环的开头放置一个broswer()调用,直到发现它爆炸的位置为止。

© www.soinside.com 2019 - 2024. All rights reserved.