想象一个非常大的数据库(汽车),其中包含某个国家/地区的汽车品牌、年份和销量。
Ex(完全随机):在 .csv 文件中,我们有:
carbrand - year - sales
toyota - 1950 - 3540
toyota - 1951 - 3433
toyota - 1952 - 3678
...
ford - 1950 - 4322
ford - 1951 - 2987
...
subaru - 1950 - 6544
subaru - 1951 - 5454
...
我想要做的是建立每年最受欢迎的品牌。输出格式本身在这里不是很重要。只是在寻找想法。 例如:
1950: subaru - 6544
1951: subaru - 5454
1952: toyota - 3678
目前我能做的就是按照销量最高的来对它们进行排名:
Cars <- read_delim("file.csv",delim=" - ")
Cars %>% arrange(desc(sales))
subaru - 1950 - 6544
subaru - 1951 - 5454
ford - 1950 - 4322
toyota - 1952 - 3678
toyota - 1950 - 3540
toyota - 1951 - 3433
ford - 1951 - 2987
答案 0 :(得分:1)
只需按 Year
分组,降序排序并保留每组的第一行。
library(dplyr)
Cars %>%
group_by(Year) %>%
arrange(desc(Quant)) %>%
slice(1)
## A tibble: 3 x 3
## Groups: Year [3]
# Car Year Quant
# <chr> <dbl> <int>
#1 subaru 1950 6544
#2 subaru 1951 5454
#3 toyota 1952 3678
数据
cars <- "
Car - Year - Quant
subaru - 1950 - 6544
subaru - 1951 - 5454
ford - 1950 - 4322
toyota - 1952 - 3678
toyota - 1950 - 3540
toyota - 1951 - 3433
ford - 1951 - 2987"
tc <- textConnection(cars)
Cars <- read.delim(tc, sep = "-")
close(tc)