我有一个包含3列的数据框,例如:
my.data <- data.frame(A=c(1:5), B=c(6:10), C=c(11:15))
我想将每一列拆分成自己的数据框(因此我最终会得到一个包含三个数据框的列表)。我尝试使用&#34; split&#34;功能,但我不知道我将设置为因素参数。我试过这个:
data.split <- split(my.data, my.data[,1:3])
但这肯定是错的,只是给了我一堆空数据框。这听起来相当简单,但在搜索完之前的问题后,我还没有遇到过这样做的方法。
答案 0 :(得分:2)
不确定你为什么要这样做; lapply
让您已经直接对列进行操作;但你可以做到
lst <- split(t(my.data), 1:3);
names(lst) <- names(my.data);
lst;
#$A
#[1] 1 2 3 4 5
#
#$B
#[1] 6 7 8 9 10
#
#$C
#[1] 11 12 13 14 15
使用
将vector
条目转换为data.frame
s
lapply(lst, as.data.frame);
答案 1 :(得分:1)
您可以使用split.default
,即
split.default(my.data, seq_along(my.data))
$`1`
A
1 1
2 2
3 3
4 4
5 5
$`2`
B
1 6
2 7
3 8
4 9
5 10
$`3`
C
1 11
2 12
3 13
4 14
5 15