使用 R 在数据集中按月计算的条件一致
Posted
技术标签:
【中文标题】使用 R 在数据集中按月计算的条件一致【英文标题】:conditional Agreegate of count month wise in a dataset using R 【发布时间】:2018-10-28 04:32:24 【问题描述】:我有一个列值为 Job_code、Months、Days 的数据框。
我需要将月份与 Days (60)等条件进行汇总
普通聚合函数只给出按月聚合的数据(但我没有看到这样的条件聚合)
输入数据:
df <- data.frame(
'Job Code' = c(1,1,8,9,1,1,2,3,4,2,3,4,5,6,7,5,6,7,2,3,4,8,4),
'Months' = c('Apr', 'May','Mar','Jan','Feb','Jun','Jul','Aug','Sep','Dec','Nov','Oct','Oct','Nov','Sep','Jun','Jul','Apr','Mar','May','Jan','Feb','Dec'),
'Days' = c(30,30,60,80,30,30,60,80,30,30,60,80,30,30,60,80,40,50,90,60,80,40,50)
)
输出必须是:
Months 0-30 30-60 >60 Total
Jan 0 0 2 2
Feb 1 1 0 2
Mar 0 1 1 2
Apr 1 1 0 2
May 1 1 0 2
Jun 1 0 1 2
Jul 0 2 0 2
Aug 0 0 1 1
Sep 1 1 0 2
Oct 1 0 1 2
Nov 1 1 0 2
Dec 1 1 0 2
Total 8 2 5 23
请原谅对齐方式,因为一旦我点击保存或提交,它就会改变
输出列必须类似于月、60 天,并按月汇总计数
【问题讨论】:
【参考方案1】:您可以在数据框本身中创建一个group
列,然后根据该列进行计数:
df$group <- ifelse(df$Days <= 30, "0-30", ifelse(df$Days <= 60, "30-60", ">60"))
table(df$Months, df$group)
>60 0-30 30-60
Apr 0 1 1
Aug 1 0 0
Dec 0 1 1
Feb 0 1 1
Jan 2 0 0
Jul 0 0 2
Jun 1 1 0
Mar 1 0 1
May 0 1 1
Nov 0 1 1
Oct 1 1 0
Sep 0 1 1
【讨论】:
以上是关于使用 R 在数据集中按月计算的条件一致的主要内容,如果未能解决你的问题,请参考以下文章
在 R 的数据集中将 -inf、NaN 和 NA 值替换为零
R语言加载UCI糖尿病数据集并启动Rattle GUI调用party包中的ctree函数构建条件推理树模型Rattle混淆矩阵使用R自定义编写函数通过混淆矩阵计算特异度敏感度PPVNPV