【发布时间】:2021-05-18 04:49:12
【问题描述】:
我有以下数据框
| customerid | payment_month | payment_date | bill_month | charges |
|---|---|---|---|---|
| 1 | January | 22 | January | 30 |
| 1 | February | 15 | February | 21 |
| 1 | March | 2 | March | 33 |
| 1 | May | 4 | April | 43 |
| 1 | May | 4 | May | 23 |
| 1 | June | 13 | June | 32 |
| 2 | January | 12 | January | 45 |
| 2 | February | 15 | February | 56 |
| 2 | March | 2 | March | 67 |
| 2 | April | 4 | April | 65 |
| 2 | May | 4 | May | 54 |
| 2 | June | 13 | June | 68 |
| 3 | January | 25 | January | 45 |
| 3 | February | 26 | February | 56 |
| 3 | March | 30 | March | 67 |
| 3 | April | 1 | April | 65 |
| 3 | June | 1 | May | 54 |
| 3 | June | 1 | June | 68 |
(id数据要大得多)我想用下面的函数计算支付效率,
效率=(未逾期支付金额/总账单金额)*100
不迟于不迟于账单当月的 21 日付款。 (在 1 月 22 日支付 1 月的账单被视为迟到)
我想用期望的输出来计算每个客户的效率
| customerid | effectivity |
|---|---|
| 1 | 59.90 |
| 2 | 100 |
| 3 | 37.46 |
我已经尝试使用以下代码来计算一个 id 并且它有效。但我想将其应用并分配给整个组 ID,并将其汇总为 1 列(有效性)和每个 ID 1 行。我曾尝试使用 group by、aggregation 和 ifelse 函数,但没有任何效果。我该怎么办?
df1 <- filter(df, (payment_month!=bill_month & id==1) | (payment_month==bill_month & payment_date > 21 & id==1) )
df2 <-filter(df, id==1001)
x <- sum(df1$charges)
x <- sum(df2$charges)
100-(x/y)*100
【问题讨论】:
标签: r