【发布时间】:2018-10-08 20:35:13
【问题描述】:
我正在尝试跨两个向量应用一个函数(比下面使用的函数更复杂,但我试图简化)。但是,我收到以下错误:
mutate_impl(.data, dots) :
Column `diff` must be length 2 (the group size) or one, not 777
我认为我可能会收到此错误,因为根据我阅读的一些帖子,行之间的差异导致比原始数据框少一行。但是,当我遵循该建议并尝试添加一个向量以在最后一行添加 0/NA 时,我收到了另一个错误。我是否至少正确识别了错误的来源?想法?谢谢。
原码:
diff_df <- DF %>%
group_by(DF$var1, DF$var2) %>%
mutate(diff = map2(DF$duration, lead(DF$duration), `-`)) %>%
as.data.frame()
【问题讨论】:
-
在
group_by内部,您不只是DF$用户group_by(var1, var2),同样在mutate内部也是如此。DF %>% group_by(var1, var2) %>% mutate(diff = duration - lead(duration)) -
嗯,我这样做是为了使代码更具可读性 - 但删除它可以消除错误!为什么简单地删除 df 名称就可以解决问题?
-
提取整列并打破分组条件