如何统计R语言向量中特定元素间的间隔长度?
处理R向量中分段长度的解决方案
针对你从PDF提取的折叠向量,统计每个以"A"开头的分段长度,可以按以下步骤操作:
- 第一步,定位所有"A"在向量中的索引位置:
a_pos <- which(t == "A")
执行后会得到所有"A"的位置:[1] 1 5 10
- 第二步,计算相邻"A"之间的分段长度,直接取索引的差值即可:
intervals <- diff(a_pos)
这一步得到前两段的长度:[1] 4 5
- 第三步,计算最后一个"A"到向量末尾的分段长度:
last_interval <- length(t) - tail(a_pos, 1) + 1
得到最后一段长度:[1] 4
- 最后合并所有结果:
result <- c(intervals, last_interval)
最终结果就是你需要的:[1] 4 5 4
如果想简化代码,也可以把所有步骤合并为一行:
result <- c(diff(which(t == "A")), length(t) - tail(which(t == "A"), 1) + 1)
这个逻辑适配你的数据场景,每个分段都以"A"开头,不管最后一段是否到向量末尾都能正确计算。
内容的提问来源于stack exchange,提问作者ryoto
相关产品推荐
相关产品推荐

