【发布时间】:2018-04-15 13:36:48
【问题描述】:
我有一个数据框,其中的组基本上看起来像这样
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 解决方案的提示。
【问题讨论】: