我想将列表转换为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
答案 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)
希望它能起作用