在R中计算出strsplit的输出

Lea*_*ner 2 regex string r strsplit

我有以下字符串表达式,我应用strsplit:

x="Hello I am using stack overflow to ask this question."
y=strsplit(x,"a")
Run Code Online (Sandbox Code Playgroud)

当有一个'a'时,上面的函数会分割x.根据我的理解,返回的向量应该是一个列表,所以说我想得到x的第二个片段,我应该使用:

y[[2]]
Run Code Online (Sandbox Code Playgroud)

但是,这给了我一个错误:

Error in y[[2]] : subscript out of bounds
Run Code Online (Sandbox Code Playgroud)

我不知道如何解决这个问题.我想要的只是访问字符串的碎片段.

akr*_*run 9

strsplit不会返回一个列表.但是,这list只是一个单一的元素列表.

length(strsplit(x,'a'))
#[1] 1
Run Code Online (Sandbox Code Playgroud)

要访问,string单个元素列表的第二个,

strsplit(x,"a")[[1]][2]
#[1] "m using st"
Run Code Online (Sandbox Code Playgroud)

假设你有一个元素向量

 a1 <- rep(x,3)
Run Code Online (Sandbox Code Playgroud)

strsplit返回与等于的长度的元素数的列表a1

 lst <- strsplit(a1,'a')
Run Code Online (Sandbox Code Playgroud)

从中获取2nd拆分字符串lst

 sapply(lst,`[`,2)
 #[1] "m using st" "m using st" "m using st"
Run Code Online (Sandbox Code Playgroud)

  • 或者你可以做`lst <-unlist(strsplit(a1,'a'))`:-) (3认同)