为什么strsplit会返回一个列表

时间:2014-11-28 21:08:42

标签: regex r parsing strsplit

考虑

text <- "who let the dogs out"
fooo <- strsplit(text, " ")
fooo
[[1]]
[1] "who"  "let"  "the"  "dogs" "out" 

strsplit的输出是一个列表。然后列表的第一个元素是一个向量,它包含上面的单词。

为什么函数表现那样?是否有任何情况会返回包含多个元素的列表?

我可以使用

访问这些单词
fooo[[1]][1]
[1] "who"

,但是没有更简单的方法吗?

1 个答案:

答案 0 :(得分:10)

对于您的第一个问题,我想到的一个原因是,它可以在同一个对象中保留不同长度的结果向量,因为它在x上进行了矢量化:

text <- "who let the dogs out"
vtext <- c(text, "who let the")
##
> strsplit(text, " ")
[[1]]
[1] "who"  "let"  "the"  "dogs" "out" 

> strsplit(vtext, " ")
[[1]]
[1] "who"  "let"  "the"  "dogs" "out" 

[[2]]
[1] "who" "let" "the"

如果要将其作为data.framematrix等等而不是list返回,则必须使用其他元素填充。