【发布时间】:2019-05-07 16:07:43
【问题描述】:
使用 R.
这是我的数据集的一小部分,经过简化后仅显示相关列。数据来自 Capital Bikeshare。下面的 Start.Date 列包含自行车的确切租赁时间。
Start.date Member.type
2018-11-01 00:00:45 Member
2018-11-01 00:00:52 Casual
2018-11-01 00:01:46 Member
2018-11-01 01:00:02 Casual
2018-11-01 01:03:36 Member
我要做的是按日期、一天中的小时、每种成员类型的数量以及任何给定日期的任何给定时间的成员类型总数(休闲+成员)对所有数据进行分组。所以,最后,我只需要“天 - 小时 - 每种会员类型的租赁数量”,这样我就可以预测一天中小时的趋势,
这是我的相关代码
library(dplyr)
bikeData <- read.csv("2011data.csv")
bikeData <- bikeData %>%
mutate(Hour = format(strptime(
bikeData$Start.date, "%Y-%m-%d %H:%M:%S"), "%m-%d %H")) %>%
mutate(day = wday(Start.date, label=TRUE))
groupData <- bikeData %>%
mutate(Start.date = ymd_hms(Start.date)) %>%
count(date1 = as.Date(Start.date), Hour1 = hour(Start.date),
member=(Member.type)) %>%
group_by(date1, Hour1) %>%
arrange(date1, Hour1) %>%
summarise(total=sum(n))
这给了我以下新数据集 groupData
date1 Hour1 total
2018-11-01 0 82
2018-11-01 1 43
2018-11-01 2 17
2018-11-01 3 4
2018-11-02 0 5
2018-11-02 1 24
所以我能够在我的数据集的每一天 24 小时内计算会员+休闲的总数,但是我如何获得另外两列显示休闲总数,另一列显示休闲总数成员?谢谢!
以下要求:
date1 Hour1 total Casual Member
2018-11-01 0 82 40 42
2018-11-01 1 43 20 23
2018-11-01 2 17 10 7
2018-11-01 3 4 1 3
2018-11-02 0 5 1 4
2018-11-02 1 24 20 4
【问题讨论】:
-
你能提供你的样本数据作为 dput 吗?会更容易复制。