在R中,我想創建一個循環,它將我的數據框的前3000列寫入一個文件,將下一個3000列寫入另一個文件等等,直到所有的列都被分開爲止。什麼是最好的方法來做到這一點?我明白現在通過CRAN可以使用isplit和iterators函數,但我真的不確定如何去做這件事。有什麼建議嗎?在R中,如何創建一個循環來分割數據幀中的列
3
A
回答
9
你可以嘗試這樣的:
library(plyr)
max.col <- ncol(x)
l_ply(seq(1, max.col, by=3000), function(i)
write.table(x[,i:min(i+2999, max.col)], file=paste("i", i, sep="-"))
)
1
不知道爲什麼你會懶得裝plyr ......假設你的數據幀DF ...(從巴蒂爾的回答偷明智地使用分鐘()的)
maxCol <- ncol(df)
for (i in seq(1, maxCol, by 3000)) {
write.table(df[,i:min(i+2999, maxCol)], "i")
}
您可能想要編輯上面的write.table命令以添加您的首選格式。
+0
在這個例子中'plyr'是不必要的(可以使用幾乎所有的應用函數),但是它通常是值得的(這就是爲什麼我用它來演示)。這就是說,for循環允許副作用,所以我儘量避免它們,除非我想鼓勵可能導致「不良」行爲的因素。 – Shane 2010-07-06 20:23:39
相關問題
- 1. 使用r for循環來創建數據幀中的新列
- 2. 在循環中創建多個數據幀(在R中)
- 3. 使用for循環在R中創建數據幀列表
- 4. R:數據幀中列的循環對
- 5. R:如何爲函數中的一系列數據創建一個循環?
- 6. 創建R中的數據幀是與另一個數據幀
- 7. 如何創建for循環來計算r中分箱數據的gini函數?
- 8. 如何使用日期來分割一個數據幀列python中的多列
- 9. 一個循環中的R因素來構建完整的數據幀
- 10. 子集中的一個循環中的多個數據幀R
- 11. R:如何引用一個數據幀的值在for循環中的R
- 12. R:創建新的數據幀行是來自另一個數據幀的列
- 13. R - for循環創建數據幀中的值向量
- 14. 在R中,如何基於來自另一列的數據來分隔數據幀的列中的數據?
- 15. 問題中的R分割一個數據幀
- 16. 創建一個循環來檢查排列中的循環
- 17. 如何創建一個循環來生成R中的隨機樣本列表?
- 18. For循環R分配給數據幀
- 19. For循環R分配給數據幀
- 20. 拆分一個數據幀中的所有列,並創建R中兩個數據幀
- 21. 在Python中分割數據幀列
- 22. 在循環中創建多個幀wxPython
- 23. R-創建一個循環中有兩行的數據框
- 24. 如何通過在r中循環來放置數據幀中的許多行
- 25. 匹配列,在R中創建循環
- 26. R-循環來在數據幀創建的所有變量的非可逆比
- 27. R使用for()循環來填充另一個數據幀
- 28. 分割數據幀裝入列的子集的中的R
- 29. 從數據幀R中創建一個列表
- 30. 如何在R中使用循環生成一系列數據幀
謝謝Shane的回覆!我試了一下,結果是一個標題爲「i」的2456列的文件 - 我認爲這是循環的最後一次迭代?我的後續問題是,我現在如何修改此代碼,以便我可以爲輸出的每個文件提供單獨的名稱?例如「i-1」,「i-2」,「i-3」 非常感謝您的幫助,它非常有用!我是編程/編碼的絕對初學者。 – CCA 2010-07-06 20:56:05
對不起......我的錯誤。我更新它以反映您的輸出命名約定。 – Shane 2010-07-06 21:21:26
謝謝Shane!另一個快速跟進 - 如果我想將這些文件輸出到特定的文件夾中 - 比如說「i-1」進入文件夾「A-1」,則「i-2」按順序進入文件夾「A-2」 - 有沒有辦法讓我在file = paste語句中指定它?或者我必須將所有文件寫入一個文件夾,然後找到一種方法將它們複製/移動到相關的文件夾後?我試圖避免這樣做手動,因爲最後會有數百個這樣的文件。再次感謝您的詳細和及時的答覆 - 非常感謝! – CCA 2010-07-07 16:14:19