在循环中选择一些列并单独保存

时间:2017-01-19 10:26:38

标签: r

我的数据框是

c1  c2  c3  c100
0.2 0.4 0.9 0
0.2 0.3 0   1
0.1 0.6 1   0.3

我想要选择c1 c2和c3,c1 c2和c4,类似于c1 c2和c100。每3个选定的列应保存在单独的文件中。我怎么能在r?

2 个答案:

答案 0 :(得分:0)

假设x是你的data.frame,你可以使用它:

for (i in 3:100){
  tmp <- x[, c(1,2,i)]
  write.table(tmp, paste0("some/file/path/and/name_", i, ".csv"))
}

通过使用迭代器i作为文件名,您可以创建单个文件名。

答案 1 :(得分:-1)

我们可以使用combn

lst <- combn(df1, 3, FUN = list)
names(lst) <-  sapply(lst, function(x) paste(names(x), collapse="_"))
lapply(names(lst), function(x) write.table(lst[[x]], paste0(x, ".csv")))

如果它附加了包含所有其他列的第1列和第2列

lst <- lapply(names(df1)[3:100], function(i) df1[c(1:2, i)])
names(lst) <-  sapply(lst, function(x) paste(names(x), collapse="_"))
lapply(names(lst), function(x) write.table(lst[[x]], paste0(x, ".csv")))