[更新:试图澄清和简化,更正示例代码和数据。]
我有一组在几天内进行的测量。在任何测量中可以捕获的数字范围是 1-25(在现实生活中,给定测试集,范围可能高达 100 或低至 20)。
我想要一种方法来计算自发生特定数字以来已经过去了多少事件,而不管测量列如何。我希望它在数字匹配后重置计数,如下所示。
V1,V2,Vn 是捕获的值。Match1、Match2、Matchn 是自上次遇到列以来的计数。
注意:无论遇到哪个 Vx 列 n,Matchn 计数都会递增。
任何帮助深表感谢。
这与我之前的帖子有点相关
样本输入
library(data.table)
t <- data.table(
Date = as.Date(c("2013-5-1", "2013-5-2", "2013-5-3", "2013-5-4", "2013-5-5", "2013-5-6", "2013-5-7", "2013-5-8", "2013-5-9", "2013-5-10")),
V1 = c(4, 2, 3, 1,7,22,35,3,29,36),
V2 = c(2, 5, 12, 4,8,2,38,50,4,1)
)
用于创建示例输出的代码
t$match1 <- c(1,2,3,4,1,2,3,4,5,1)
t$match2 <- c(1,1,2,3,4,5,1,2,3,4)
t$match3 <- c(1,2,3,1,2,3,4,5,1,2)
> t
Date V1 V2 match1 match2 match3
1: 2013-05-01 4 2 1 1 1
2: 2013-05-02 2 5 2 1 2
3: 2013-05-03 3 12 3 2 3
4: 2013-05-04 1 4 4 3 1
5: 2013-05-05 7 8 1 4 2
6: 2013-05-06 22 2 2 5 3
7: 2013-05-07 35 38 3 1 4
8: 2013-05-08 3 50 4 2 5
9: 2013-05-09 29 4 5 3 1
10: 2013-05-10 36 1 1 4 2