为什么strsplit会返回一个列表

Foo*_*Bar 6 regex parsing r strsplit

考虑

text <- "who let the dogs out"
fooo <- strsplit(text, " ")
fooo
[[1]]
[1] "who"  "let"  "the"  "dogs" "out" 
Run Code Online (Sandbox Code Playgroud)

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

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

我可以使用

fooo[[1]][1]
[1] "who"
Run Code Online (Sandbox Code Playgroud)

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

nru*_*ell 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"
Run Code Online (Sandbox Code Playgroud)

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

  • 是的,我想到了`y`中的向量,而不是`x`.大.但是我很想把你的'vtext`改成'... c(文字,'谁是谁') (3认同)