我有一个相当大的数据框架 . 这是一个简化的例子:
Group Element Value Note
1 AAA 11 Good
1 ABA 12 Good
1 AVA 13 Good
2 CBA 14 Good
2 FDA 14 Good
3 JHA 16 Good
3 AHF 16 Good
3 AKF 17 Good
这是 dput
:
dat <- structure(list(Group = c(1L, 1L, 1L, 2L, 2L, 3L, 3L, 3L), Element = structure(c(1L,
2L, 5L, 6L, 7L, 8L, 3L, 4L), .Label = c("AAA", "ABA", "AHF",
"AKF", "AVA", "CBA", "FDA", "JHA"), class = "factor"), Value = c(11L,
12L, 13L, 14L, 14L, 16L, 16L, 17L), Note = structure(c(1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L), .Label = "Good", class = "factor")), .Names = c("Group",
"Element", "Value", "Note"), class = "data.frame", row.names = c(NA,
-8L))
我试图根据小组分开它 . 所以我们说吧
第1组将是一个数据框:
Group Element Value Note
1 AAA 11 Good
1 ABA 12 Good
1 AVA 13 Good
第2组:
2 CBA 14 Good
2 FDA 14 Good
等等 .
2 回答
你可以使用
split
.然后,您可以使用
x[[1]]
,x[[2]]
等按组编号访问每个单独的数据框 .例如,这是第2组:
ADD: 由于您在评论中询问了这一点,因此您可以使用
write.csv
和lapply
将每个单独的数据框写入文件 .invisible
包装器只是为了抑制lapply
的输出我们可以看到文件是通过查看
list.files
创建的我们可以看到第三组的数据框
read.csv
必要的
plyr
版本(相当于理查德's, but I' ll打赌它也慢了: