Tôi có tập dữ liệu lớn (nhưng sau đây là tập dữ liệu nhỏ). Tôi có thể chia dataframe và sau đó tôi muốn xuất ra nhiều tập tin văn bản tương ứng với lavel được sử dụng để chia nhỏ.Chia khung dữ liệu thành nhiều tệp đầu ra
mydata <- data.frame (var1 = rep(c("k", "l", "c"), each = 5), var2 = rnorm(5),
var3 = rnorm(5))
mydata
var1 var2 var3
1 k 0.5406022 0.3654706
2 k -0.6356879 -0.9160001
3 k 0.2946240 -0.1072241
4 k -0.2609121 0.1036626
5 k 0.6206579 0.6111655
6 l 0.5406022 0.3654706
7 l -0.6356879 -0.9160001
8 l 0.2946240 -0.1072241
9 l -0.2609121 0.1036626
10 l 0.6206579 0.6111655
11 c 0.5406022 0.3654706
12 c -0.6356879 -0.9160001
13 c 0.2946240 -0.1072241
14 c -0.2609121 0.1036626
15 c 0.6206579 0.6111655
Bây giờ chia
> spt1 <- split(mydata, mydata$var1)
> spt1
$c
var1 var2 var3
11 c 0.5406022 0.3654706
12 c -0.6356879 -0.9160001
13 c 0.2946240 -0.1072241
14 c -0.2609121 0.1036626
15 c 0.6206579 0.6111655
$k
var1 var2 var3
1 k 0.5406022 0.3654706
2 k -0.6356879 -0.9160001
3 k 0.2946240 -0.1072241
4 k -0.2609121 0.1036626
5 k 0.6206579 0.6111655
$l
var1 var2 var3
6 l 0.5406022 0.3654706
7 l -0.6356879 -0.9160001
8 l 0.2946240 -0.1072241
9 l -0.2609121 0.1036626
10 l 0.6206579 0.6111655
Tôi muốn write.table trong tên của outputc
, outputk
, và outputl
. Vì vậy, đầu ra là tiền tố phổ biến, theo sau là tên của nhãn để nhóm biến.
write.table (spt1)
Cũng có thể đáng chú ý: OP muốn giữ lại 'var1' ở đầu ra nhưng' .SD' không chứa nó. Bạn có thể thử 'c (.BY, .SD)' (không chắc chắn nếu nó hoạt động) hay sử dụng phương thức 'split.data.table' mới (hiện đang có trong phiên bản devel https://github.com/Rdatatable/data. bảng/vấn đề/1389) – Frank