R - DPLYR:针对同一数据框中另一个变量的每个唯一值计算一个变量中唯一值的频率



下面是我的数据帧中的一些行的示例:

> data[1:25, c("TR_DATE", "TR_TYPE...")]
TR_DATE TR_TYPE...
1  2016-03-01          4
2  2016-03-01          4
3  2016-03-01          5
4  2016-03-01          4
5  2016-03-01          1
6  2016-03-01          7
7  2016-03-01          4
8  2016-03-01          4
9  2016-03-01          24
10 2016-03-01          23
11 2016-03-01          4
12 2016-03-02          4
13 2016-03-02          1
14 2016-03-02          1
15 2016-03-02          4
16 2016-03-02          4
17 2016-03-02          14
18 2016-03-02          4
19 2016-03-02          4
20 2016-03-03          4
21 2016-03-03          1
22 2016-03-03          4
23 2016-03-03          23
24 2016-03-03          1
25 2016-03-03          4

我想要做的是重新排列,以便对于每个独特的一天,我都会获得唯一交易类型的数量和每种交易类型的频率

。这是我尝试过的代码:

data %>%
group_by(TR_DATE) %>%
summarise(trancount = n(), trantype = n_distinct(TR_TYPE...))

这给了我想要的部分结果:

# A tibble: 68 x 3
TR_DATE trancount trantype
<date>     <int>    <int>
1 2016-03-01      5816        6
2 2016-03-02      5637        3
3 2016-03-03      4818        3
4 2016-03-04      5070        8
5 2016-03-05         4        2
6 2016-03-08      6707        5
7 2016-03-09      5228        5
8 2016-03-10      4722        6
9 2016-03-11      4469        8
10 2016-03-12         1        1
# ... with 58 more rows

所以 trantype 告诉我在特定日期发生的唯一交易类型的数量,但我想知道这些独特交易类型中的每一个的频率。这样做的最佳方法是什么? 我尝试环顾四周,发现了类似的问题,但无法根据我的要求修改解决方案。 我对 R 相当陌生,非常感谢一些帮助。谢谢。

您应该按两个变量进行分组:

data %>%
group_by(TR_DATE, TR_TYPE...) %>%
summarise(trancount = n(), trantype = n_distinct(TR_TYPE...))

最新更新