2017-08-10 46 views
-1

列表转换为data.frame我想一个列表转换为数据帧R.如何R中

我的列表:

myList <- list(
`JJ-NN-NN` = c("hybridized","cmp","conditioner"), 
`JJ-JJ-NN` = c("first", "abrasive", "unit")) 

> myList 
$`JJ-NN-NN` 
[1] "hybridized" "cmp"   "conditioner" 
$`JJ-JJ-NN` 
[1] "first" "abrasive" "unit" 

我想这个数据帧。

POS   Word 
1 JJ-NN-NN  hybridized cmp conditioner 
2 JJ-JJ-NN  first abrasive unit 

回答

7

请尝试以下代码:

a=do.call(rbind,lapply(myList,paste0,collapse=" ")) 
    data.frame(pos=rownames(a),word=a,row.names = NULL) 

如果这能帮助,请告诉我们。谢谢

+0

哇〜这是工作!感谢您的帮助^^ – Eva

+0

很高兴它有帮助。请参阅 [here](https://stackoverflow.com/help/someone-answers)以获取更多关于解决方案正确时的解决方法的指导 – Onyambu

+2

并且抛弃Onyambu的答案stack(lapply(myList,paste0,collapse = “”))' – user20650

1

这是另一种解决方案,保持在tidyverse

library(tidyverse) 
map(myList, paste0, collapse = " ") %>% bind_rows() %>% gather(POS, Word) 
0

也许更直白:

data.frame(POS = names(myList),Word = sapply(myList,paste,collapse=" "),row.names = seq_along(myList))