You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用tidytable包处理时间序列数据时出现floor_date函数未找到错误

加载tidytable后floor_date函数找不到的问题

我有一个包含timestamp和value两列的时间序列数据:

as.data.table(structure(list(timestamp = c("2023-10-04 09:59:58", "2023-10-04 10:02:58", 
"2023-10-04 10:05:58", "2023-10-04 10:08:58", "2023-10-04 10:11:58", 
"2023-10-04 10:14:58", "2023-10-04 10:17:58"), value = c(1, 2.5, 
4, 5.5, 7, 8.5, 10)), row.names = c(NA, -7L), class = c("data.table", 
"data.frame")))

为计算每15分钟间隔的平均值,我写了如下代码:

library(tidytable)
library(dplyr)


averaged_df <- df %>%
  group_by(interval = floor_date(timestamp, "15 minutes")) %>%
  summarise(average_value = mean(value))

运行后触发错误:

Error in group_by(): ℹ In argument: interval = floor_date(timestamp, "15 minutes"). Caused by error in
floor_date(): ! could not find function "floor_date"

注:不加载tidytable包时代码可正常运行,加载后才出现该错误。


问题原因

floor_date是lubridate包的函数,未加载tidytable时,dplyr管道能正常识别lubridate的函数;但加载tidytable后,它会重写dplyr的group_by等函数,此时在tidytable的group_by环境中,无法直接找到未显式加载的lubridate函数。

解决办法

  • 显式加载lubridate包
    在代码开头加载lubridate,确保函数可被调用:

    library(tidytable)
    library(dplyr)
    library(lubridate)
    
    averaged_df <- df %>%
      group_by(interval = floor_date(timestamp, "15 minutes")) %>%
      summarise(average_value = mean(value))
    
  • 指定命名空间调用函数
    若不想额外加载包,直接用命名空间前缀调用floor_date:

    library(tidytable)
    library(dplyr)
    
    averaged_df <- df %>%
      group_by(interval = lubridate::floor_date(timestamp, "15 minutes")) %>%
      summarise(average_value = mean(value))
    

内容的提问来源于stack exchange,提问作者Golem

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 10:43:19