【发布时间】:2020-05-01 04:25:04
【问题描述】:
我正在尝试创建一个用于创建原始数据子集的 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")
【问题讨论】:
-
试试
assign(paste0("Dataset_",i), subset(Dataset1, compliance>=(0+(i-1)*5)))而不是你的Dataset_[[i]] = subset(Dataset1, compliance>=(0+(i-1)*5)) -
或者只是
for (i in 1:6){ save(subset(Dataset1, compliance>=(0+(i-1)*5)), file = sprintf("Hypothesis1/Dataset%s.RData", i)) }。 -
尝试 assign(paste0("Dataset_",i), subset(Dataset1, compliance>=(0+(i-1)*5))) 代替您的 Dataset_[[i]] = subset(Dataset1, compliance>=(0+(i-1)*5)) 这行得通,非常感谢:)
-
@ulfelder 请发帖回答。
-
@Jeroen 请发布您的答案。
标签: r dataframe for-loop subset