如何将每列拆分成自己的数据框?

时间:2018-03-13 20:19:55

标签: r

我有一个包含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])

但这肯定是错的,只是给了我一堆空数据框。这听起来相当简单,但在搜索完之前的问题后,我还没有遇到过这样做的方法。

2 个答案:

答案 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