2017-04-01 52 views
0

我的输出看起来像:转换特征向量的列表到数据帧

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" 

我打算将它转换成像一个数据帧:

股票变频领域

20微米一个权责发生制
20MICRONS A ACCRUALS
20MICONS A AE
20MICONS A AE
20微米A自动
20微米一个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和堆栈溢出的新手。

+0

第1步。制作一个*小*示例以测试您的代码。你有800万这些。 – Spacedman

回答

0

list元素不是equal长度。所以,我们需要给它填充与NA

mx <- max(lengths(a)) 
d1 <- data.frame(lapply(a, `length<-`, mx)) 
+0

@shivrajgondi这可以通过指定长度小于最大长度的元素来自动纠正它,以便使用尽可能多的NAs来获得所有长度相同的长度 – akrun

+0

谢谢Akrun,发现某些向量的长度为4. – shivrajgondi

+0

@shivrajgondi Your部分'str'输出表示长度为3,可能是基于完整的'str'的​​4 – akrun

0

我发现了一个名为do.call(rbind.data.frame, your_list)功能转换为同等length - 好像这是你在找什么。查看this question的评论部分。