regex - 为什么 strsplit 返回一个列表

标签 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"

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

最佳答案

对于您的第一个问题,想到的一个原因是它可以在同一对象中保留不同长度的结果向量,因为它是在 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.frame 返回, matrix , 等等... 而不是 list ,它必须用额外的元素填充。

关于regex - 为什么 strsplit 返回一个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27195912/

相关文章:

javascript - 需要 RegEx for URI 模板 (RFC 6570)

r - 将分面包裹图上的 strip 标签移动到每个图的内部

java - Android:如何在主要 Activity 的变量中存储值(value)?

将全名解析为其组成部分

regex - 使用awk提取括号中的部分字符串

java - 条件表达式的正则表达式

r - 在Hadoop上运行wordcount R示例代码时出错

html - 查找和替换 HTML 标签

c# - 为什么正则表达式匹配抛出异常?

r - 在 R 中安装 devtools 的问题