我有很大的数据集(例如,以下是一个很小的数据集)。我可以拆分数据帧,然后将其输出到与用于拆分的lavel相对应的多个文本文件。

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


现在拆分

> 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


我想以outputcoutputkoutputl的名称编写write.table。因此,输出是通用前缀,后跟分组变量的标签名称。

write.table (spt1)

最佳答案

在spt1的名称上使用lapply将使我们能够访问spt1中的数据帧以及可在粘贴中使用的名称来创建文件。

lapply(names(spt1), function(x){write.table(spt1[[x]], file = paste("output", x, sep = ""))})


如果需要,可以在粘贴中添加通用扩展名。

关于r - 将数据框拆分为多个输出文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10002021/

10-11 03:34
查看更多