我上一个问题的答案帮助我理解了 dplyr
n()
。但是我仍然无法应用于我要解决的问题。所以,我在这里发布数据和实际问题。数据看起来如下
finalCalledPartyNumber Call Day Call Date Block Answered Call Duration Opty ID Opty Created Date BC ID
19183598259 Monday 2016-12-05 12:26:46 Block 2(12:30 pm) 1 5 1234 <NA> <NA>
17135796188 Monday 2016-12-05 12:18:24 Block 2(12:30 pm) 1 16 <NA> <NA> 3456
19183598259 Monday 2016-12-05 15:43:33 Block 4(5:30 pm) 1 10 <NA> <NA> 4567
17135796188 Tuesday 2016-12-06 11:53:50 Block 2(12:30 pm) 1 85 <NA> <NA> 5566
19014741000 Tuesday 2016-12-06 12:00:11 Block 2(12:30 pm) 1 42 6789 <NA> <NA>
19014741000 Tuesday 2016-12-06 10:43:20 Block 2(12:30 pm) 1 58 2345 <NA> <NA>
BC Created Date
<NA>
<NA>
<NA>
<NA>
<NA>
<NA>
对于每个 finalCalledPartyNumber
,我想计算每个 finallCalledPartyNumber
被调用的次数, Opty ID
和 BC ID
的数量。数据集很大,<NA>
只是意味着没有创建 Opty ID
或 BC ID
。
输出:
finalCalledPartyNumber n_opty n_BC n_calls
19183598259 1 1 2
17135796188 0 2 2
19014741000 2 0 2
感谢您的帮助。谢谢。
最佳答案
这是使用 dplyr 实现您正在寻找的结果的另一种方法,但它不使用 n()
df %>% group_by(finalCalledPartyNumber) %>%
summarise(n_opty = sum(!is.na(Opty.Id)),
n_BC = sum(!is.na(BC.ID)),
n_calls = sum(!is.na(Call)))
输出:
# A tibble: 3 x 4
finalCalledPartyNumber n_opty n_BC n_calls
<dbl> <int> <int> <int>
1 17135796188 0 2 2
2 19014741000 2 0 2
3 19183598259 1 1 2
关于r - 计算多列并在 R 中分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44508582/