温馨提示:本文翻译自stackoverflow.com,查看原文请点击:r - for loop to create data frames which are subsets of another data frame
dataframe for-loop r subset

r - for循环创建数据框,这些数据框是另一个数据框的子集

发布于 2020-04-04 00:12:33

我正在尝试创建一个for循环,该循环创建我的原始数据的子集

现在,我创建子集,如下所示:

Dataset_1 <- subset(Dataset1, compliance>=0)    
Dataset_2 <- subset(Dataset1, compliance>=5) 
Dataset_3 <- subset(Dataset1, compliance>=10)
Dataset_4 <- subset(Dataset1, compliance>=15)
Dataset_5 <- subset(Dataset1, compliance>=20)
Dataset_6 <- subset(Dataset1, compliance>=25)

但是,我想使用一个for循环来做到这一点,并认为这样的事情可能会起作用:

Dataset_ = {}
for (i in 1:6){
  Dataset_[[i]] = subset(Dataset1, compliance>=(0+(i-1)*5))
}

当我这样做时,我得到一个包含数据帧的列表。但是,我想知道是否有一种方法可以编写for循环,以使数据帧不放在列表中,而是制成单个数据帧。原因:我想将创建为.Rdata文件的数据帧保存在文件夹中,例如:

save(Dataset_2, file = "Hypothesis1/Dataset1.RData")
save(Dataset_3, file = "Hypothesis1/Dataset2.RData")
save(Dataset_4, file = "Hypothesis1/Dataset3.RData")

查看更多

提问者
Jeroen
被浏览
116
ulfelder 2020-01-31 20:35

您无需创建列表。您可以for按照以下步骤将文件直接写到磁盘中

for (i in seq(6)) {

  save(subset(Dataset1, compliance >= (0 + (i-1) * 5)),
       file = sprintf("Hypothesis1/Dataset%s.RData", i))

}