我的数据帧是选择在一个循环中一些列并保存单独
c1 c2 c3 c100
0.2 0.4 0.9 0
0.2 0.3 0 1
0.1 0.6 1 0.3
我想OT选择C1 C2和C3的C1 C2和C4,同样C1,C2,和C100。每3个选定的列应保存在单独的文件中。我怎么能在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
我想OT选择C1 C2和C3的C1 C2和C4,同样C1,C2,和C100。每3个选定的列应保存在单独的文件中。我怎么能在r?
我们可以使用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")))
如果是追加第一和第二列的所有其他列
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")))
好吧,一些优惠downvote提供相同的答案:-) – akrun
谢谢,现在全部排序! – user2808642
假设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
作为文件名,您可以创建单个文件名。
这应该为'c3'和'c100'之间的所有变量完成吗? – LAP
[This](http://stackoverflow.com/questions/18298825/how-to-obtain-all-combinations-of-the-columns-of-a-data-frame-taken-by-2)然后[这个](http://stackoverflow.com/questions/34723202/save-all-data-frames-in-list-to-separate-csv-files) – Sotos
昨天你已经问过这个问题了。 [选择一些列来创建几个文件](http://stackoverflow.com/questions/41699952/select-some-columns-to-create-several-files)。 –