r - 使用 dplyr、filter、group_by 和 summarise 计算 R 中的平均天数?
问题描述
我想创建一个表格,使用 date_diff,减去 date_sent 和 date_received,通过提交的_via(请参阅 consumer_compliants.csv)显示平均天数。过滤数据以仅显示大于 0 的 date_diff 值。所有这些都必须使用 dplyr、%>%、filter、group_by 和 summarise_at、knitr::kable() 来完成
我在 R 中试过这个
date_received <- as.Date(mydata$date_received, "%m/%d/%Y")
date_sent <- as.Date(mydata$date_sent_to_company, "%m/%d/%Y")
date_diff <- (date_sent) - (date_received)
mydata %>%
filter(date_diff > 0) %>%
group_by(date_received, date_sent_to_company) %>%
summarise(
a = mean(date_diff))
输出:
Email 11.973214 days
Fax 7.057072 days
Phone 6.290040 days
Postal mail 9.627809 days
Referral 6.761684 days
Web 10.695773 days
请问有什么建议吗?
解决方案
这可能更接近您想要的:
library(dplyr)
mydata %>%
mutate_at(vars(starts_with("date_")), as.Date, format = "%m/%d/%Y") %>%
mutate(date_diff = date_received - date_sent) %>%
filter(date_diff > 0) %>%
group_by(submitted_via) %>%
summarise(a = mean(date_diff))
输出
# A tibble: 3 x 2
submitted_via a
<fct> <drtn>
1 phone 22 days
2 Referral 27 days
3 web 4 days
数据
mydata <- read.table(
text =
"date_received date_sent submitted_via
9/30/2015 9/3/2015 Referral
9/3/2015 8/30/2015 web
9/25/2015 9/3/2015 phone
9/18/2015 9/18/2015 Referral", header = T
)
推荐阅读
- c# - 我们如何在 Windows 商店 + C# 中存储和检索包含私钥的证书
- python - 使用python从日志文件计算增量时间
- hashcat - hashcat [命令行错误:选项 'polly' 注册了多次!& LLVM 错误:注册的命令行选项不一致]
- c++ - 如何处理 cgo 中打包结构中的 char *?
- javascript - 使用 javascript 创建 `select` 元素
- angular - 角度 2+,垫表 - 过滤不适用于模型中的模型
- reactjs - 开玩笑 toMatchInlineSnapshot 一直显示“不允许操作,scandir 消息”
- javascript - AgGrid 自定义标题过滤器未显示
- c++ - 为什么我的 elseif 语句永远不会执行
- java - 为什么读取文件名中带有“:”的测试资源会导致 NPE?