我有以下字符串表达式,我应用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
我不知道如何解决这个问题。我想要的只是访问字符串的碎片。
答案 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"