strsplit 的返回值

cos*_*osa 3 r

在下面的例子中

x = strsplit('30 min', ' ')
Run Code Online (Sandbox Code Playgroud)

文档状态的返回值是

与 x 长度相同的列表,其中第 i 个元素包含 x[i] 的分割向量。

我希望x[[1]]回来30x[[2]]回来min

然而x[[1]][1]返回30x[[1]][2]返回min

对此有何解释?

mar*_*dly 5

您得到的结果是因为您只拆分了一个元素(此答案扩展了最初由@R. Schifini发表的评论)。

x <- '30 min'
length(x)
#> [1] 1
strsplit(x, ' ')
#> [[1]]
#> [1] "30"  "min"
Run Code Online (Sandbox Code Playgroud)

尝试拆分 3 个字符串的向量,您将得到一个包含 3 个向量的列表,每个向量包含单个字符串的拆分结果。

x <- c( '30 min', '15 min', '20 30 min etc')
length(x)
#> [1] 3
strsplit(x, ' ')
#> [[1]]
#> [1] "30"  "min"
#> 
#> [[2]]
#> [1] "15"  "min"
#> 
#> [[3]]
#> [1] "20"  "30"  "min" "etc"
Run Code Online (Sandbox Code Playgroud)