R 按年打造最受欢迎的汽车品牌

R 按年打造最受欢迎的汽车品牌,r,dplyr,R,Dplyr,想象一下,一个非常大的数据库(Cars)包含某个国家的汽车品牌、年份和销量 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 ... 我想做的是建立每年

想象一下,一个非常大的数据库(Cars)包含某个国家的汽车品牌、年份和销量

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
...
我想做的是建立每年最受欢迎的品牌。输出格式本身在这里不是很重要。只是在寻找想法。 例:

到目前为止,我所能做的是按销售最多的产品对它们进行排名:

Cars <- read_delim("file.csv",delim=" - ")
Cars %>% arrange(desc(sales))

只需按
年份分组
,按降序排序,并保留每组的第一行

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
库(dplyr)
汽车%>%
组别(年份)%>%
排列(描述(数量))%>%
切片(1)
##一个tibble:3x3
##组别:年份[3]
#汽车年数量
#     
#1斯巴鲁1950 6544
#2斯巴鲁1951 5454
#3丰田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)

cars请提供一个最小的可复制示例:我不清楚您显示的数据是否存储在不同的列中,或者这是否是一个串联列,您首先要将特定部分提取到它们自己的列中。您可以发布样本数据吗?请使用
dput(Cars)
的输出编辑问题。或者,如果输出的dput(head(Cars,20))
太大,这正是我需要的!非常感谢你。
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)