r - 使用 count 查找前 5 个中位数 r
问题描述
structure(list(price = c(80, 115, 46, 32, 100, 71, 175, 150,
139, 190, 85, 64, 79, 60, 55, 70, 120, 50, 280, 75), neighbourhood = c("New Town",
"Southside", NA, "Leith", "Southside", "Old Town", "New Town",
"West End", "Leith", "West End", "New Town", "Leith", "Leith",
NA, "Haymarket", "Morningside", "New Town", "Leith", "Newington",
"Leith")), row.names = c(NA, -20L), class = c("tbl_df", "tbl",
"data.frame"))
不确定这是否是显示数据框的正确方法,如果错误,请告诉我更好的方法。id 喜欢显示数据框中邻域的前 5 个中位数价格。我在这里的数据框中显示了几行,但还有更多。我用来获取每个社区中位数的代码是:
edibnb %>%
count(neighbourhood, sort = TRUE)
但是我不知道如何只显示前 5 名。非常感谢!
解决方案
这就是你要找的东西?
edibnb %>%
group_by(neighbourhood) %>%
summarise(med_price = median(price), .groups = "drop") %>%
top_n(n = 5, med_price)
neighbourhood med_price
<chr> <dbl>
1 New Town 102.
2 Newington 280
3 Old Town 71
4 Southside 108.
5 West End 170
基数 R:
med_price <- aggregate(price ~ neighbourhood, edibnb, median)
med_price[order(-med_price$price), ][1:5, ]