将元素取消列表并组合到数据框r中

时间:2014-10-25 15:49:39

标签: r list

我有一个如下所示的列表(提供2个元素),长度为数千个。

[[1]]
[1] "few/JJ"        "enough/JJ"     "particular/JJ"

[[2]]
[1] "signifcant/JJ" "last/JJ"       "individual/JJ" "effective/JJ"

我想将其转换为具有以下格式的1列的数据框,其中数据类型为字符:

 few enough particular

 significant last individual effective

我尝试了几种do.call,unlist和lapply的组合,但似乎无法获得正确的格式。

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:0)

d2 <- data.frame(Col1=gsub("(?:/)[^ ]+", "",
         sapply(lst, paste, collapse=" "), perl=TRUE),
                   stringsAsFactors=FALSE)

d2
#                                   Col1
#1                 few enough particular
#2 significant last individual effective

数据

 lst <-  list(c("few/JJ", "enough/JJ", "particular/JJ"),
    c("significant/JJ", "last/JJ", "individual/JJ", "effective/JJ"))

答案 1 :(得分:0)

x是您的列表,您可以使用vapply,因为您知道结果将是单长度字符向量。这有时可以更快更安全,因为R事先知道了结果向量的结构。

data.frame(colname = vapply(x, function(y) {
    paste(sub("/.*", "", y), collapse = " ")
}, character(1L)), stringsAsFactors = FALSE)
#                                colname
# 1                few enough particular
# 2 signifcant last individual effective