• R语言
  • 求教:如何分割一个很大的字符矢量?

有一个很大的字符矢量,约1000万个元素,其中第一个元素是“XXX”,以后大约每隔13个元素左右再出现一次“XXX”(间隔没有规律)。我想这个大矢量分割成许多小矢量,截取时要求是每个小矢量第一个元素为“XXX”,最后一个元素截止在下一个“XXX”之前。同时,想把这些小矢量保存在同一个list中。
“XXX”的位置很容易获取!id <- which(z=="XXX")
请问如何操作?


先谢谢了!
input: vector a
output: list b

XXX <-- '13'

a<-rep(c('13',2,3,14,'13',1,4,13,2,4,1,1,1,1,13),times=100)
#t1开始下标,t2结束下标
t1<-c(which(a=='13'))
t2<-t1[-length(t1)]+diff(which(a=='13'))-1
#结果
b<-list()
for(i in 1:length(t2)){
  b[[i]]<-a[t1[i]:t2[i]]
}
head(b,10)


初步如此,大量数据速度可能会慢,需改进

PS:code模式下b双中括号【【i】】变成了【i】,t1和t2的【i】变没了,是什么情况