我有两个数据框:城市和国家。我想找出每个国家最受欢迎的城市。 City和Country有一个共同的字段,City.CountryCode和Country.Code。这两个数据框合并为一个名为CityCountry的数据框。我像这样尝试了聚合命令:
aggregate(Population.x~CountryCode, CityCountry, max)
此聚合命令仅显示CountryCode和Population.X列。我如何显示国家名称和城市名称?聚合是否在这里使用错误的命令?
答案 0 :(得分:1)
还可以使用dplyr
按Country
进行分组,然后按max(Population.x)
进行过滤。
library(dplyr)
set.seed(123)
CityCountry <- data.frame(Population.x = sample(1000:2000, 10, replace = TRUE),
CountryCode = rep(LETTERS[1:5], 2),
Country = rep(letters[1:5], 2),
City = letters[11:20],
stringsAsFactors = FALSE)
CityCountry %>%
group_by(Country) %>%
filter(Population.x == max(Population.x)) %>%
ungroup()
# A tibble: 5 x 4
Population.x CountryCode Country City
<int> <chr> <chr> <chr>
1 1287 A a k
2 1789 B b l
3 1883 D d n
4 1941 E e o
5 1893 C c r