如何将列表转换为R中的data.frame

时间:2017-08-10 03:36:28

标签: r list dataframe

我想将列表转换为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

4 个答案:

答案 0 :(得分:10)

请尝试以下代码:

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

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

编辑:

aggregate(.~ind,stack(myList),paste,collapse=' ')
       ind                     values
1 JJ-NN-NN hybridized cmp conditioner
2 JJ-JJ-NN        first abrasive unit

答案 1 :(得分:1)

这是另一种保持在tidyverse范围内的解决方案。

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

答案 2 :(得分:0)

也许更直接:

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

答案 3 :(得分:0)

****大家好*; ***

这可能是完整的帮助:

1- myList <-myData

2- myData <-data.frame(myData)

3-如果要进行方差分析:

然后您将其堆叠:

4-myData <-stack(myData)

希望它能起作用