R - 拆分每个x项目列表

时间:2016-05-09 14:56:59

标签: r

我有要分析的数据,以列表的形式呈现(只有一行和多个列)。

A B C D E F G H I
1 2 3 4 5 6 7 8 9 

有没有办法告诉R将每个x项目分成这个列表并获得如下所示的内容(C D E F G H列几乎与A B相同)?

A B
1 2
3 4
5 6
7 8
9

1 个答案:

答案 0 :(得分:2)

如果列数是' x'的倍数,那么我们unlist数据集,并使用matrix创建预期的输出。

as.data.frame(matrix(unlist(df1), ncol=2, dimnames=list(NULL, c("A", "B")) , byrow=TRUE))

如果列数不是' x'的倍数,则

x <- 2
gr <- as.numeric(gl(ncol(df1), x, ncol(df1)))
lst <- split(unlist(df1), gr)
do.call(rbind, lapply(lst, `length<-`, max(lengths(lst))))
#   A  B
# 1 1  2
# 2 3  4
# 3 5  6
# 4 7  8
# 5 9 NA