【问题标题】:Aggregating minute-to-hourly-data in R在 R 中聚合每分钟到每小时的数据
【发布时间】:2021-07-27 04:51:57
【问题描述】:

我知道这样的问题已经在这里得到了很多次的回答,相信我,我已经尝试了我能找到的所有方法,例如 xts、dplyr、zoo 等,但对我没有任何帮助。

我基本上想要做的是汇总卡路里,以便它们显示每小时时间范围内的总和。在 SQL 中,这意味着使用 GROUP BY 和 SUM,但我不知道如何将其转换为 R。

我当前的数据集min_cal_narrowhttps://i.ibb.co/Db8Z6pX/Current-Form.png

我想要达到的目标:https://i.ibb.co/HKcxHdt/Ideal.png

谁能给我指出正确的方向?

谢谢。

【问题讨论】:

  • 请不要将数据作为图片发布。我们不能将其复制/粘贴到 R 中进行测试。使用reproducible format。到目前为止,您的代码尝试到底有什么问题?
  • @MrFlick 感谢您的回复。这些图像不是代码,它们只是我当前数据集的打印输出与我的理想输出。让我执行代码并在下一个回复中回复错误。
  • min_cal_narrow$ActivityMinute <- min_cal_narrow %>% mdy_hms(ActivityMinute) %>% to.hourly(ActivityMinute) %>% rename(ActivityMinute, act_hour) 错误:lapply 中的错误(列表(...),.num_to_date):找不到对象“ActivityMinute”。注意:ActivityMinute 是 csv 文件中的列之一。
  • 代码没问题。但数据本身不应该在图像中。使用dput()我们可以很容易地复制到R来帮助。将错误消息添加到帖子本身。不要将这些信息放在 cmets 中。

标签: r dplyr


【解决方案1】:

我会做这样的事情。

library(dplyr)
library(lubridate)

test_data <- data.frame(minutes = c("4/12/2016 12:01:00", 
                                     "4/12/2016 12:02:00",
                                     "4/12/2016 12:03:00",
                                     "4/12/2016 13:01:00",
                                     "4/12/2016 13:02:00",
                                     "4/12/2016 13:03:00"),
                        calories = c(50, 
                                     40, 
                                     30, 
                                     10, 
                                     15, 
                                     60))

# Convert minute column to datetime. Find the hour of the minute column using floor_date 

test_data$hour <-  floor_date(as_datetime(test_data$minutes, 
                                          format =  "%d/%m/%Y %H:%M:%S"), 
unit = "hour")                                   

summarised <- test_data %>% 
  group_by(hour) %>% 
  summarise(sum_calories = sum(calories))

## Have the sum of calories for each hour. 
summarised

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-08
    • 1970-01-01
    • 2014-11-27
    • 2012-04-09
    • 1970-01-01
    • 2022-11-13
    相关资源
    最近更新 更多