我有一个数据框,其列值为Job_code,Months,Days。
我需要在几天内将条件与条件汇总(< = 30,介于30到60之间,> 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
请原谅对齐,因为一旦我点击保存或提交
,它就会被更改“输出”列必须类似于月份,<= 30天,30到60天,> 60天,计算累计数月
答案 0 :(得分:0)
您可以在数据框中创建一个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