r - 有没有更简单的方法可以按日期查找某个因素的比例?
问题描述
我的数据由日期(从 2008 年 1 月 1 日到 2019 年 1 月 12 日每个月的第一个日期)和一列因素(0 或 1)组成。我想创建一个新的数据集,每个月的比例为 1。
我首先按日期拆分数据。
split_by_month=split(pre_polchangedata,as.Date(pre_polchangedata$ServiceDate)
然后我一直在手动创建每月 1 比例的新变量,就像这样
Jan2008=split_by_month$'2008-01-01'
summary(Jan2008$FamilyRetentionFail)
0 1
12504 1367
不用说,这是一个非常缓慢的过程!有没有更快的方法来做到这一点?
我试过了
pre_polchangedata %>*
group_by(ServiceDate)
mutate(Prop=sum(familyRetentionFail==1)/n()) %>%
但它只是制作了与我之前完全相同的数据框。
解决方案
你可以试试aggregate
:
aggregate(familyRetentionFail~ServiceDate, pre_polchangedata,
function(x) mean(x == 1))
如果familyRetentionFail
是数字并且只有 0 和 1 值,则上述可以简化为:
aggregate(familyRetentionFail~ServiceDate, pre_polchangedata, mean)
推荐阅读
- javascript - 将普通 JSON 对象转换为类似文件夹的结构的逻辑
- c# - Google Cloud Monitoring:使用代码提取警报策略状态
- azure-application-insights - 如何计算 Kusto 同一会话中两个连续请求之间的持续时间
- powershell - 在终止错误时终止跨机器的整个管道
- computer-name - 在 MDT 中为 OsdComputerName 设置最大长度
- vue.js - Vue.js:循环
标签 - python - 样式化 django 模板引导程序中的代码片段
- c# - 如何解决命名空间“Microsoft”中不存在类型或命名空间名称“Office”(您是否缺少程序集引用?)
- javascript - 有没有可能检查函数是否有另一个函数的内部调用?
- sql - oracle中的递归SQL SQL Developer崩溃Oracle