mal*_*atr 15 r date-formatting dplyr
我有这个数据集:
dat <-
structure(list(date = structure(c(1L, 1L, 1L, 2L, 2L, 2L, 3L,
3L, 3L, 4L, 4L), .Label = c("3/31/2014", "4/1/2014", "4/2/2014",
"4/3/2014"), class = "factor"), site = structure(c(1L, 2L, 1L,
2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L), .Label = c("a", "b"), class = "factor"),
clicks = c(73L, 64L, 80L, 58L, 58L, 61L, 70L, 60L, 84L, 65L,
77L), impressions = c(55817L, 78027L, 77017L, 68797L, 92437L,
94259L, 88418L, 55420L, 69866L, 86767L, 92088L)), .Names = c("date",
"site", "clicks", "impressions"), class = "data.frame", row.names = c(NA,
-11L))
dat
date site clicks impressions
1 3/31/2014 a 73 55817
2 3/31/2014 b 64 78027
3 3/31/2014 a 80 77017
4 4/1/2014 b 58 68797
...
Run Code Online (Sandbox Code Playgroud)
是否可以包含链中一列的日期格式?(我也尝试过使用with,但只返回日期列.)
library(dplyr)
> dat %.%
+ select(date, clicks, impressions) %.%
+ group_by(date) %.%
+ summarise(clicks = sum(clicks),
+ impressions = sum(impressions)) %.%
+ as.Date(Date, format = '%m/%d/%Y')
Error in as.Date.default(`__prev`, Date, format = "%m/%d/%Y") :
do not know how to convert '__prev' to class “Date”
Run Code Online (Sandbox Code Playgroud)
如果我没有在链中包含格式,它可以工作.我知道在链外写这个很简单,但我想确认这是否可行.
dat %.%
select(date, clicks, impressions) %.%
group_by(date) %.%
summarise(clicks = sum(clicks),
impressions = sum(impressions))
dat$date <- as.Date(dat$Date, format = '%m/%d/%Y')
Run Code Online (Sandbox Code Playgroud)
Rob*_*ski 24
这是你想要的吗?
dat %>%
select(date, clicks, impressions) %>%
group_by(date) %>%
summarise(clicks = sum(clicks),
impressions = sum(impressions)) %>%
mutate(date = as.Date(date, format = '%m/%d/%Y'))
Run Code Online (Sandbox Code Playgroud)
有时,Error: cannot modify grouping variable当您尝试对group_by()已经分组的内容执行操作时,会出现消息.你可以尝试ungroup首先包括.在罗伯特的答案的语法中:
dat %>%
ungroup %>%
select(date, clicks, impressions) %>%
group_by(date) %>%
summarize(clicks = sum(clicks),
impressions = sum(impressions)) %>%
mutate(date = as.Date(date, format = "%m/%d/%Y"))
Run Code Online (Sandbox Code Playgroud)