具有连续列的数据帧列表

时间:2017-10-21 12:55:30

标签: r list dataframe permutation

给定数据框

A <- c("One", "Two", "Three")
B <- c(1,2,3)
C <- c(1,1,1)
df <- data.frame(A,B,C)

我想生成一个数据框列表,看起来像下面的例子

A
One
Two
Three

A     B
One   1
Two   2
Three 3 

A     B  C
One   1  1
Two   2  1
Three 3  1

我正在处理一个包含~50列的数据帧。我尝试了几次尝试,但收效甚微。

谢谢!

2 个答案:

答案 0 :(得分:1)

我们可以使用saaply使用seq选择增量列。

sapply(seq(ncol(df)), function(x) df[seq(x)])

#[[1]]
#      A
#1   One
#2   Two
#3 Three

#[[2]]
#      A B
#1   One 1
#2   Two 2
#3 Three 3

#[[3]]
#      A B C
#1   One 1 1
#2   Two 2 1
#3 Three 3 1

答案 1 :(得分:0)

您可以像这样使用标准循环:

A <- c("One", "Two", "Three")
B <- c(1,2,3)
C <- c(1,1,1)
df <- data.frame(A,B,C)

dfList = list()
for(i in 1:ncol(df)){


  dfSub <- data.frame(df[,1:i])
  dfList[[i]] <- dfSub

  }


dfList
[[1]]
  df...1.i.
1       One
2       Two
3     Three

[[2]]
      A B
1   One 1
2   Two 2
3 Three 3

[[3]]
      A B C
1   One 1 1
2   Two 2 1
3 Three 3 1