使用 strsplit 的 R 代码中的行如何工作?

在下面来自 stackoverflow 帖子 here 的代码中,第二行中的代码如何工作,即以 str_split 开头的行?

另外,为什么代码的第二行是 [[1]]?它有什么作用?

string1 <- "This is my string"
strsplit(string1," ")[[1]]
# [1] "This"   "is"     "my"     "string"
fei89123 回答:使用 strsplit 的 R 代码中的行如何工作?

此处,strsplit 的输入是 length 1 的向量,strsplit 始终返回一个列表。 length 的 Te list 也与向量的长度相同。因此,当我们执行 [[1]] 时,它从 list 中提取向量元素。使用 str

更容易检查输出的结构
> out <- strsplit(string1," ")
> length(out)
[1] 1
> str(out)
List of 1 #### list of 1 element
 $ : chr [1:4] "This" "is" "my" "string"

[[ 提取元素

> str(out[[1]])
 chr [1:4] "This" "is" "my" "string"

考虑输入的长度是否> 1

> string2 <- rep(string1,5)
> out2 <- strsplit(string2," ")
> str(out2)
List of 5
 $ : chr [1:4] "This" "is" "my" "string"
 $ : chr [1:4] "This" "is" "my" "string"
 $ : chr [1:4] "This" "is" "my" "string"
 $ : chr [1:4] "This" "is" "my" "string"
 $ : chr [1:4] "This" "is" "my" "string"

现在,我们的长度 > 1。人们常犯的一个错误是这里也使用 [[1]],这是错误的,因为它只会提取第一个元素作为向量

本文链接:https://www.f2er.com/393.html

大家都在问