2017-04-01 70 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的評論部分。

相關問題