访问R中拆分字符串的元素

访问R中拆分字符串的元素,r,string,R,String,如果我有一根绳子 x <- "Hello World" x如评论中所述,重要的是要意识到strsplit返回一个列表对象。由于您的示例仅拆分单个项(长度为1的向量),因此列表的长度为1。我将用一个稍微不同的例子来解释,输入一个长度为3的向量(要拆分的3个文本项): 现在,我们可以通过附加一个[调用来获取这些列表元素的第二部分: > x[[1]][2] [1] "world" > x[[3]][2] [1] "at" 这将从每个列表元素返回第二个项目(注意,在本例中,“返回

如果我有一根绳子

x <- "Hello World"

x如评论中所述,重要的是要意识到
strsplit
返回一个列表对象。由于您的示例仅拆分单个项(长度为1的向量),因此列表的长度为1。我将用一个稍微不同的例子来解释,输入一个长度为3的向量(要拆分的3个文本项):

现在,我们可以通过附加一个
[
调用来获取这些列表元素的第二部分:

> x[[1]][2]
[1] "world"

> x[[3]][2]
[1] "at"
这将从每个列表元素返回第二个项目(注意,在本例中,“返回到ya”输入返回了“at”)。您可以使用
apply
系列中的某个元素一次对所有项目执行此操作。
sapply
将返回一个向量,在本例中可能会很好:

> sapply( x, "[", 2 )
[1] "world" "there" "at"
此处输入的最后一个值(2)被传递给
[
运算符,这意味着操作
x[2]
将应用于每个列表元素

如果您想要每个列表元素的最后一项,而不是第二项,那么我们可以在
sapply
调用中使用
tail
,而不是
[

> sapply( x, tail, 1 )
[1] "world" "there" "ya"
这次,我们对每个列表元素应用了
tail(x,1)
,给出了最后一项

作为首选,我最喜欢的方法是使用
magrittr
pipe来应用这些操作,第二个词是这样的:

x <- input %>%
    strsplit( " " ) %>%
    sapply( "[", 2 )

> x
[1] "world" "there" "at"
x%
strsplit(“”%>%
多愁善感的(“[”,2)
>x
[1] “世界”“那里”“在”
或者最后一句话:

x <- input %>%
    strsplit( " " ) %>%
    sapply( tail, 1 )

> x
[1] "world" "there" "ya" 
x%
strsplit(“”%>%
赛普利(尾巴,1)
>x
[1] “世界”“那里”“是”
x

[[1]] [1] “a”“b”“c”“d”

x

[1] “a”“b”“c”“d”

x

[[1]] [1] “a”

[[2]] [1] “b”

[[3]] [1] “c”

[[4]] [1] “d”


它是
x[[1]][2]
strsplit
返回一个列表。拆分的字符串位于列表结果的第一个元素中。
“World”
是该元素的第二个值。还可以执行
扫描(text=x,what=”“)[2]
使用代码格式使答案更漂亮,并提供有关示例功能的一些解释。
> sapply( x, tail, 1 )
[1] "world" "there" "ya"
x <- input %>%
    strsplit( " " ) %>%
    sapply( "[", 2 )

> x
[1] "world" "there" "at"
x <- input %>%
    strsplit( " " ) %>%
    sapply( tail, 1 )

> x
[1] "world" "there" "ya" 
x=strsplit("a;b;c;d",";")
x=as.character(x[[1]])
x=strsplit(x," ")