在R中按时间戳进行分组的解决方法可以通过使用dplyr包中的group_by和mutate函数来实现。下面是一个示例代码:
# 安装和加载必要的包
install.packages("dplyr")
library(dplyr)
# 创建一个包含时间戳的数据框
df <- data.frame(
timestamp = c("2021-01-01 09:00:00", "2021-01-01 09:05:00", "2021-01-01 09:10:00",
"2021-01-01 09:00:00", "2021-01-01 09:05:00", "2021-01-01 09:10:00"),
value = c(1, 2, 3, 4, 5, 6)
)
# 将timestamp从字符型转换为日期时间型
df$timestamp <- as.POSIXct(df$timestamp)
# 按小时分组并计算每个小时的平均值
df_grouped <- df %>%
group_by(hour = floor_date(timestamp, "hour")) %>%
mutate(avg_value = mean(value))
# 输出结果
df_grouped
在上面的代码中,我们首先创建了一个包含时间戳的数据框df。然后,使用as.POSIXct函数将timestamp转换为日期时间型。接下来,我们使用dplyr包中的group_by函数按小时对数据框进行分组,并使用floor_date函数将时间戳取整到小时。最后,使用mutate函数计算每个小时的平均值,并将结果存储在新的列avg_value中。输出的结果是按小时分组后的数据框df_grouped。
请注意,上述代码中我们使用了dplyr包中的floor_date函数来将时间戳取整到小时。如果你没有安装该包,可以使用lubridate包中的floor_date函数来实现相同的功能。
上一篇:按时间戳排序,从ID开始返回文档
下一篇:按时间戳整理文件列表