我有一個很大的數據集。我想分成「n」個數據集,每個數據集的大小都是「s」。然而,如果數字不能被數字整除,最後的數據集可能會小於其他大小。並將它們作爲csv文件輸出到工作目錄。將數據集拆分成多個數據集,其中隨機列r
比方說,下面的小例子:
set.seed(1234)
mydf <- data.frame (matrix(sample(1:10, 130, replace = TRUE), ncol = 13))
mydf
X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13
1 3 7 1 9 6 4 7 5 8 2 2 2 8
2 5 3 4 6 9 5 3 10 5 8 10 2 10
3 4 6 10 4 4 6 3 4 2 9 9 2 9
4 10 10 9 4 3 7 7 7 10 6 7 10 2
5 10 3 9 3 2 10 9 6 4 4 4 6 3
6 7 2 8 7 5 5 10 10 9 3 7 8 4
7 3 2 2 7 10 9 2 2 10 1 1 10 4
8 3 9 9 7 3 1 7 6 10 3 10 3 2
9 9 3 6 9 3 2 2 3 4 2 9 10 10
10 6 4 3 3 5 9 3 9 10 7 4 6 10
我希望創建一個在隨機拆分數據集爲N個子集(在這種情況下說的大小爲3,因爲有13列的功能 - 最後的數據集將有1列休息4每個都有3)並作爲單獨的數據集輸出爲文本文件。
這裏是我做過什麼:
set.seed(123)
reshuffled <- sample(1:length(mydf),length(mydf), replace = FALSE)
# just crazy manual divide
group1 <- reshuffled[1:3]; group2 <- reshuffled[4:6]; group3 <- reshuffled[7:9]
group4 <- reshuffled[10:12]; group5 <- reshuffled[13]
# just manual
data1 <- mydf[,group1]; data2 <- mydf[,group2]; ....so on;
# I want to write dimension of dataset at fist row of each dataset
cat (dim(data1))
write.csv(data1, "data1.csv"); write.csv(data2, "data2.csv"); .....so on
是否可以循環的過程中,我不得不產生100個集?