访问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," ")