【发布时间】:2021-03-19 01:14:16
【问题描述】:
我的数据看起来像一个列表:
G085_1.csv, G085_2.csv, G085_3.csv, .. G100_1.csv, G100_2.csv, .. G173_1, csv., G173_2, csv., G173_3.csv
其中 G 代表组,后面是每个组成员(1、2 或 3)的标识。值得注意的是,有些组并没有全部三个成员。
我要做的是创建一个循环来为整个组运行以下代码(1 个组的示例)。
i1 <- fread("sample/G085_1.csv")
i2 <- fread("sample/G085_2.csv")
i3 <- fread("sample/G085_3.csv")
我一直在做的是:
Groups <- c()
for(g in 85:173){
Groups[g] <- ifelse(g<100,
paste0("G0", g),
paste0("G", g))
}
Members <- c("i1", "i2", "i3")
for(g in 1:length(Groups)){
for(m in 1:3) {
filename<- paste0("i",m)
wd <- paste0("sample/", Groups[g],"_",
m, ".csv")
ifelse(file.exists(wd),assign(filename,fread(wd)),
function(){})
}
assign(Groups[g],...
)
}
我被困的地方是最后一部分 (assign(Groups[g]...)。我不确定什么可以调用所有 i1、i2 ,组下每个组的i3个数据框。有没有比这里使用assign函数更好的方法?
【问题讨论】:
-
因此,对于每个组(
G085、G086等),您希望assigni1、i2、i3(以存在者为准)。在那之后你想做什么?顺便说一句,您应该将数据存储在列表中,而不是使用assign。