首页 > 解决方案 > 计算特定的重复组

问题描述

我必须在 r 中编写代码,我必须计算向量中一组特定数字一个接一个重复的次数。

例如,在下面的一组数字中,我想计算一个数字在其自身之后重复的次数,例如 2,2 和 4,4,或者甚至在其自身之后连续重复 3 次,例如 1, 1,1 或 3,3,3,不计算单个数字在整组中出现的次数。

5, 3, 2, 2, 4, 1, 4, 4, 6, 1, 3, 2, 1, 4, 3, 1, 6, 4, 5, 5, 3, 4, 3, 4, 4, 5, 6, 6, 2, 4, 6, 1, 1, 1, 2, 2, 4, 3, 3, 3, 1, 3, 5, 1, 5, 2, 2, 6, 5, 6, 3

标签: r

解决方案


您可以使用rle来查找重复的连续值。例如,

i1 <- rle(x)
setNames(i1$lengths[i1$lengths > 1], paste0('value:', i1$values[i1$lengths > 1]))
#value:2 value:4 value:5 value:4 value:6 value:1 value:2 value:3 value:2 
#      2       2       2       2       2       3       2       3       2 

数据

dput(x)
c(5, 3, 2, 2, 4, 1, 4, 4, 6, 1, 3, 2, 1, 4, 3, 1, 6, 4, 5, 5, 
3, 4, 3, 4, 4, 5, 6, 6, 2, 4, 6, 1, 1, 1, 2, 2, 4, 3, 3, 3, 1, 
3, 5, 1, 5, 2, 2, 6, 5, 6, 3)

推荐阅读