将字符向量列表转换为数据帧

时间:2017-04-01 16:37:31

标签: r

我的输出看起来像:

str(a)
List of 8883695
 $ : chr [1:3] "20MICRONS" "A" "ACCRUALS"
 $ : chr [1:3] "20MICRONS" "A" "ACCRUALS"
 $ : chr [1:3] "20MICRONS" "A" "ACCRUALS"
 $ : chr [1:3] "20MICRONS" "A" "ACCRUALS"
 $ : chr [1:3] "20MICRONS" "A" "ACCRUALS"
 $ : chr [1:3] "20MICRONS" "A" "ACCRUALS"
 $ : chr [1:3] "20MICRONS" "A" "ACCRUALS"
 $ : chr [1:3] "20MICRONS" "A" "ACCRUALS"
 $ : chr [1:3] "20MICRONS" "A" "ACCRUALS"
 $ : chr [1:3] "20MICRONS" "A" "ACCRUALS"
 $ : chr [1:3] "20MICRONS" "A" "ACCRUALS"
 $ : chr [1:3] "20MICRONS" "A" "ACCRUALS"
 $ : chr [1:3] "20MICRONS" "A" "AE"
 $ : chr [1:3] "20MICRONS" "A" "AE"
 $ : chr [1:3] "20MICRONS" "A" "AE"

我想将其转换为数据框,如:

自动收报机频率字段

20MICRONS A ACCRUALS
20MICRONS A ACCRUALS
20MICRONS A AE
20MICRONS A AE
20MICRONS A AE
20MICRONS A AE

我试过这个:

b <- as.data.frame(a)  
Error in sort.list(y) : 'x' must be atomic for 'sort.list'
Have you called 'sort' on a list?

但不行。请帮忙。我是R的新手并且堆栈溢出。

3 个答案:

答案 0 :(得分:1)

我发现了一个名为do.call(rbind.data.frame, your_list)的函数 - 看起来这就像你要找的那样。查看this question的评论部分。

答案 1 :(得分:0)

list个元素的长度不是equal。因此,我们需要通过使用length

填充将其转换为等于NA
mx <- max(lengths(a))
d1 <- data.frame(lapply(a, `length<-`, mx))

答案 2 :(得分:0)

您可以尝试使用Reduce(rbind, a),这很方便。