【发布时间】:2015-07-16 00:52:06
【问题描述】:
我有一个数据集x_output,如下所示:
timestamp city wait_time weekday
2015-07-14 09:00:00 Boston 1.4 Tuesday
2015-07-14 09:01:00 Boston 2.5 Tuesday
2015-07-14 09:02:00 Boston 2.8 Tuesday
2015-07-14 09:03:00 Boston 1.6 Tuesday
2015-07-14 09:04:00 Boston 1.5 Tuesday
2015-07-14 09:05:00 Boston 1.4 Wednesday
我想找到平均 wait_time,按 city、weekday 和 time 分组。基本上,给定您所在的城市,例如,星期一的平均等待时间是多少?然后星期二?
我在创建time 列给定x_output$timestamp 时遇到困难;我目前正在使用:
x_output$time <- strsplit(as.character(x_output$timestamp), split = " ")[[1]][2]
但是,这只是将“09:00”放在每一行中,而不是每一行的正确时间。
其次,我需要有一个 3 路分组来找到给定城市、工作日和时间的平均 wait_time。这是在 python pandas 中相当简单的事情,但我可以在 R 中找到很少的文档(不幸的是我需要在 R 中,而不是 python)。
我已经研究过使用data.table,但这似乎不起作用。有没有像 python pandas 中那样的简单函数(例如df.groupby(['col1', 'col2', 'col3']).mean())?
【问题讨论】:
-
类似于
df %>% group_by(city, weekday) %>% mutate(MeaD = mean(wait_time))和dplyr但请发布有用的代码。您的代码只有NAs 的等待时间,只有一个城市,只有一天。有了这个日期是不可能帮助你的。 -
对不起!现在修好了。我很快就会对此进行测试。
-
应该更像
sapply(strsplit(as.character(x_output$timestamp), split = " "),'[',2)从列表中的每个向量中提取第二个元素。 -
timestamp分组的标准是什么?每天?每12小时?每周? -
还有一件事:你在问 3 件事(有点不相关),而标题只是关于分组数据。也许您最好打开另一个关于如何将
timestamp列解析为日期和时间的问题(或进行搜索)。
标签: r group-by transform shiny strsplit