我有以下字符串表达式,对其应用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

我不确定该如何解决。我想要的只是访问字符串的破碎片段。

最佳答案

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"

关于regex - 计算R中strsplit的输出,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27597984/

10-12 18:09