我有一个数据框,其中的分组情况基本上看起来像这样。
我的问题是如何计算第一个“块”中第一个值重复的连续行数。 对于上面的
在这种情况下的结果是5。因此,如果有(最好是)
DF <- data.frame(state = c(rep("A", 3), rep("B",2), rep("A",2)))
DF
state
1 A
2 A
3 A
4 B
5 B
6 A
7 A
我的问题是如何计算第一个“块”中第一个值重复的连续行数。 对于上面的
DF
,结果应该是3。第一个值可以出现任意次数,并且在其中可能有其他值,或者它可能是唯一出现的值。
以下的朴素尝试通常会失败,因为它计算了第一个值的所有出现次数。DF %>% mutate(is_first = as.integer(state == first(state))) %>%
summarize(count = sum(is_first))
在这种情况下的结果是5。因此,如果有(最好是)
dplyr
解决方案的提示将不胜感激。
.$state
,它只是一个向量,因此无法正确处理分组,只需使用state
即可让dplyr
发挥其魔力。 - moodymudskipper