我的R问题是如何从数字向量(或数据框)开始,如:
a <- c(1,2,3,4,5,7,8,12,13,14,16,20)
检查连续序列,检索所有序列,获取它们的长度,最小值和最大值并返回如下内容:
num count
1 1 5
2 5 5
3 7 2
4 8 2
5 12 3
6 14 3
7 16 1
8 20 1
其中num
是每个细分的最小值和最大值,count
表示该细分的长度。
分组对整数不起作用,我该怎么办?
答案 0 :(得分:2)
这样做的一种方法:
chunkstart <- which(c(TRUE, diff(a) > 1))
chunkend <- c(chunkstart[-1] - 1, length(a))
chunksize <- chunkend - chunkstart + 1
data.frame(num = c(rbind(a[chunkstart], a[chunkend])), count = rep(chunksize, each = 2))