从列表中创建数据框

时间:2017-02-22 23:20:23

标签: r list dataframe

我有一个如下列表:

yel <- list(c(1,3,5,7,9),
        c(1,2,6,9),
        c(2,4,5,6,7,8,9))

我想将列表转换为如下所示的数据框:

  1 2 3
1 1 1 0
2 0 1 1
3 1 0 0
4 0 0 1
5 1 0 1
6 0 1 1
7 1 0 1
8 0 0 1
9 1 1 1

要了解我是如何到达该列表的:我有一个包含2列的数据帧,即“id”和“text”。 “text”列是一个字符列表。我在字符列表中找到了唯一的单词,并创建了一个数据框“yel”,其中第一个列表表示“id”,其中“text1”,第二个列表示“id”,其中包含“text2”等等。 (例如,我的数据集中的“id”是 7170325 )。非常感谢你提前!

2 个答案:

答案 0 :(得分:5)

tabulate在这里可能很方便:

setNames(data.frame(lapply(yel, tabulate)), seq_along(yel) )
#  1 2 3
#1 1 1 0
#2 0 1 1
#3 1 0 0
#4 0 0 1
#5 1 0 1
#6 0 1 1
#7 1 0 1
#8 0 0 1
#9 1 1 1

答案 1 :(得分:4)

我们可以使用mtabulate

library(qdapTools)
t(mtabulate(yel))
#   [,1] [,2] [,3]
#1    1    1    0
#2    0    1    1
#3    1    0    0
#4    0    0    1
#5    1    0    1
#6    0    1    1
#7    1    0    1
#8    0    0    1
#9    1    1    1