示例:
library(dplyr) # version 0.4.3
df <-
data.frame(hour = 0:11, minutes = runif(12, 0, 59), count = rpois(12, 3)) %>%
arrange(hour, minutes)
df %>%
group_by(hour) %>%
mutate(diff = count - lag(count, default = max(count)))
引发错误:
Error: expecting a single value
以下引发了不同的错误:
> df %>%
+ group_by(hour) %>%
+ mutate(diff = count - lag(count, default = count))
Error: not compatible with requested type
我觉得两者都应该有效,答案应该是包含diff
列零的数据框。这是因为每个组只有一行,我希望默认的不存在的行值是该组中的最大计数。
答案 0 :(得分:2)
第一个错误似乎是特定于版本的,但我们可以通过选择first
观察&#39;计数&#39;来删除第二个错误。或last
一个。
df %>%
group_by(hour) %>%
mutate(diff = count - lag(count, default = first(count)))