【发布时间】:2021-03-04 14:53:02
【问题描述】:
我有一个按几个变量分组的数据集,并按其中一个变量降序排列。我想从一列中获取不同值的列表,按照它在分组和降序排序后出现在结果中的顺序。
这是一个示例数据集:
set.seed(42)
id <- seq_len(10)
city <- sample(c('Miami', 'Seattle', 'Houston', 'Toronto', 'Tokyo', 'Mumbai', 'Austin'), 10, replace = TRUE)
state <- sample(c('ON', 'WA', 'TX', 'MA'), 10, replace = TRUE)
rent <- sample(800:1900, 10)
data = data.frame(id, city, state, rent)
我使用三列进行分组,并按降序对总租金进行排序,得到以下结果:
data %>%
group_by(id, city, state) %>%
summarise(total_rent = sum(rent)) %>%
arrange(desc(total_rent))
现在,我想要按照上面结果中出现的顺序列出唯一城市值。 例如。
Houston
Toronto
Miami
Mumbai
Austin
我试过了:
group_by(id, city, state) %>%
summarise(total_rent = sum(rent)) %>%
arrange(desc(total_rent)) %>%
slice_max(1)
还有top_n() 和distinct(),但是没有用。我也看到 row_number()could 工作,但我找不到让它适合我的方法。
【问题讨论】: