每次有5个独特的关卡时,我想要一个新的分组
实施例。 varB是期望的结果
structure(list(varA = structure(c(2L, 2L, 3L, 5L, 4L, 1L, 1L,
2L, 3L, 5L, 4L, 4L, 1L), .Label = c("badger", "cat", "dog", "monkey",
"turtle"), class = "factor"), varB = c(1L, 1L, 1L, 1L, 1L, 1L,
1L, 2L, 2L, 2L, 2L, 2L, 2L)), .Names = c("varA", "varB"), class = "data.frame", row.names = c(NA,
-13L))
编辑:对数据的一些假设:
答案 0 :(得分:4)
在“新”值的cumsum上使用模数除法:
dat$cu5 <- with(dat, 1+ cumsum( c(0, varA[-length(varA)] != varA[-1])) %/% 5)
只有在您希望编号从1开始时才需要添加一个。如果您考虑了它并添加了标签,则不需要。