在R中计算出strsplit的输出

时间:2014-12-22 07:03:25

标签: regex r string strsplit

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

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

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

y[[2]]

然而,这给了我一个错误:

Error in y[[2]] : subscript out of bounds

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

1 个答案:

答案 0 :(得分:8)

strsplit会返回一个列表。但是,list只是一个元素列表。

length(strsplit(x,'a'))
#[1] 1

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

strsplit(x,"a")[[1]][2]
#[1] "m using st"

假设你有一个元素向量

 a1 <- rep(x,3)

strsplit会返回一个列表,其中包含的元素数量等于a1的长度

 lst <- strsplit(a1,'a')

2nd

获取lst拆分字符串
 sapply(lst,`[`,2)
 #[1] "m using st" "m using st" "m using st"