我正在使用R上的dplyr,并尝试筛选包含交易数据的表格。我感兴趣的列是“国家”和“销售额”。
由于探索目的,我要分析销售额排名前五的国家,但我有很多国家。
这里的问题是,如果我进行一些分组,它对我是不起作用的,因为我需要所有行以进行进一步的分析(交易数据)。
我尝试了以下内容:
我期望的结果是:
由于探索目的,我要分析销售额排名前五的国家,但我有很多国家。
这里的问题是,如果我进行一些分组,它对我是不起作用的,因为我需要所有行以进行进一步的分析(交易数据)。
我尝试了以下内容:
trans_merch_df %>% group_by(COUNTRY) %>% top_n(n = 5, wt = NET_SLS_AMT)
但它完全错误。
假设我有这个:
trans_merch_df <- tibble::tribble(~COUNTRY, ~SALE,
'POR', 14,
'POR', 1,
'DEU', 4,
'DEU', 6,
'POL', 8,
'ITA', 1,
'ITA', 1,
'ITA', 1,
'SPA', 1,
'NOR', 50,
'NOR', 10,
'SWE', 42,
'SWE', 1)
我期望的结果是:
COUNTRY SALE
POR 14
POR 1
DEU 4
DEU 6
POL 8
NOR 50
NOR 10
SWE 42
SWE 1
由于ITA和SPA的销售额不在前五名,因此需要加强推广。
提前谢谢您的帮助。
祝好!
group_by
时,就像你有一个单独的小数据框架用于每个组,每个组都会发生一切然后重新组合。当你使用group_by() %>% top_n()
时,你是在每个组内提取前几行,而不是前5个组。 - Gregor Thomas