保存变量时替代for()函数?

时间:2017-02-14 01:51:48

标签: r

所以我的数据看起来像这样:

Merged[[1]]
Date   A   B   C
01/01  1   2   3

Merged[[2]]
Date   B1   B2  B3
01/01  4    5   6

等等。我想使用MergedData的特定索引保存一个新变量Merged2,以便:

Merged2 <- 0
for (i in sig){
  Merged2 <- Merged[[i]]
  FileName <- paste("Merged2",".csv", sep="")
  write.csv(Merged2, file=FileName)
}

但不出所料,这只能保存最后一个我的信号。我也试过了:

Merged2 <- 0
for (i in sig){
Merged2 <- Merged2[c(1, Merged[[i]])]
}

但是它返回TrendData中的错误[c(1,MergedData [[i]])]:无效的下标类型&#39; list&#39;。

有没有其他方法可以做到这一点而不是依赖于for()函数?

1 个答案:

答案 0 :(得分:0)

您可以向量化大部分工作,然后只使用循环来创建文件。没有任何数据可以在这里继续...

## subset the Merged list by sig to get new list
Merged2 <- Merged[sig]
## create the file names
Filenames <- paste0("Merged2", sig, ".csv")
## here is the multivariate loop that creates the files
Map(write.csv, x = Merged2, file = Filenames)

输出到控制台将是一个NULL列表,这是预期的。您可以使用list.files()检查文件是否存在。