我的數據幀是選擇在一個循環中一些列並保存單獨
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)。 –