2017-07-12 55 views
0

所以这里是一些从我的数据框行的样本计算唯一值的频率在一个变量的另一个变量的每个唯一值:的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相当陌生,非常感谢您的帮助。谢谢。

+1

你试图通过这两个变量分组? – Daniel

回答

1

你应该两个变量组:

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