首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

分组的dplyr::mutate错误地返回lubridate间隔的向量

是由于在dplyr中使用mutate函数时,对于lubridate包中的间隔类型(interval)的处理存在一些问题。具体来说,当使用mutate函数对数据进行分组操作时,如果对lubridate包中的间隔类型进行计算,会错误地返回一个向量,而不是按照分组进行计算。

解决这个问题的方法是使用dplyr的group_by函数对数据进行分组,然后使用do函数结合lubridate包中的相关函数进行计算。具体步骤如下:

  1. 使用group_by函数对数据进行分组,指定分组的变量。
  2. 使用do函数结合lubridate包中的相关函数对分组后的数据进行计算。
  3. 在do函数中,使用lubridate包中的函数对分组后的数据进行处理,得到想要的结果。
  4. 最后使用ungroup函数取消分组。

下面是一个示例代码:

代码语言:R
复制
library(dplyr)
library(lubridate)

# 假设有一个数据框df,包含两个变量group和interval
df <- data.frame(
  group = c("A", "A", "B", "B"),
  interval = interval(ymd_hms("2022-01-01 00:00:00"), ymd_hms("2022-01-01 01:00:00"))
)

# 使用dplyr进行分组计算
result <- df %>%
  group_by(group) %>%
  do(interval_sum = sum(.$interval)) %>%
  ungroup()

# 输出结果
print(result)

在这个示例中,我们首先使用group_by函数对数据框df按照group变量进行分组。然后使用do函数结合lubridate包中的sum函数对每个分组中的interval进行求和计算。最后使用ungroup函数取消分组,得到最终的结果。

这样,我们就可以正确地对分组的dplyr::mutate错误地返回lubridate间隔的向量进行处理,并得到正确的结果。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的视频

领券