我有一个如下所示的列表(提供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的组合,但似乎无法获得正确的格式。
任何帮助将不胜感激!
答案 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