R dplyr中的行之间的时间差,不同单位

R dplyr中的行之间的时间差,不同单位,r,datetime,dplyr,difference,R,Datetime,Dplyr,Difference,这是我的例子。我正在阅读以下文件: 所以我按MDN列分组,并计算Cl_Date列之间的差异。正如你所看到的,有时以分钟为单位(A组),有时以天为单位(B组) 为什么时间差在不同的单位,如何纠正它 另外,我无法用手动data.frame创建复制相同的示例,因此我必须从文件中读取 更新1 diff(ts$Cl\u日期)似乎是一致的,一切都在几分钟内完成。dplyr中是否有中断 更新2 ts <- ts %>% group_by(MDN) %>% arrange(Cl_Date) %

这是我的例子。我正在阅读以下文件:

所以我按MDN列分组,并计算Cl_Date列之间的差异。正如你所看到的,有时以分钟为单位(A组),有时以天为单位(B组)

为什么时间差在不同的单位,如何纠正它

另外,我无法用手动
data.frame
创建复制相同的示例,因此我必须从文件中读取

更新1
diff(ts$Cl\u日期)
似乎是一致的,一切都在几分钟内完成。dplyr中是否有中断

更新2

ts <- ts %>% group_by(MDN) %>% arrange(Cl_Date) %>%
  mutate(time_diff_2 = Cl_Date-lag(Cl_Date))
ts%group\u by(MDN)%%>%arrange(Cl\u Date)%%>%
变异(时间差2=Cl_日期滞后(Cl_日期))
产生相同的结果。

ts%group\u by(MDN)%%>%arrange(Cl\u Date)%%>%
ts <- ts %>% group_by(MDN) %>% arrange(Cl_Date) %>%
  mutate(time_diff_2 = as.numeric(Cl_Date-lag(Cl_Date), units = 'mins'))
变异(时间差2=as.numeric(Cl_日期滞后(Cl_日期),单位为“分钟”)
将时间差转换为数值。您可以使用
units
参数使返回值一致。

根据@hadley的说法,解决方案是使用lubridate而不是依赖于base R

这将类似于:

ts%>%
分组依据(MDN)%>%
安排(Cl_日期)%>%
变异(如持续时间(Cl_日期%--%lag(Cl_日期)))

为什么不使用一个易于复制的示例,如
df@Henrik agreement,谢谢!现在,它是一个bug吗?我如何报告
dplyr
的bug?它不是
dplyr
中的bug,而是
difftime
的工作方式。我认为帮助文本的相关部分是“如果
units=“auto”
,则选择一组合适的单位,最大的可能[…],其中所有绝对差异都大于一。”@Henrik,我如何为
diff
函数提供单位?@Henrik也
diff(ts$Cl\u Date)
看起来不错,没有有趣的单位选择
ts <- ts %>% group_by(MDN) %>% arrange(Cl_Date) %>%
  mutate(time_diff_2 = Cl_Date-lag(Cl_Date))
ts <- ts %>% group_by(MDN) %>% arrange(Cl_Date) %>%
  mutate(time_diff_2 = as.numeric(Cl_Date-lag(Cl_Date), units = 'mins'))