У меня есть набор данных, в котором есть продукты и их количество продано. Я хочу написать код R, который скажет мне самый продаваемый продукт.

Products              Quantity

Laminated               520
Laminated               150
Laminated               639
Laminated               702
SUPERSTAR                 3
TAMAX                   500
TAMAX                    20
TAMAX                    40
GreenDragon              40
GreenDragon              50
XPLODE                   40
XPLODE                   20
EXPERT                   40
KHANJARBIOSL             40

Здесь, просто взглянув на набор данных, мы можем сказать, что ламинат является лучшим продуктом с точки зрения количества проданного. Можем ли мы написать код R для этого.

Благодарность

-1
Adarsh 19 Авг 2019 в 13:15

2 ответа

Лучший ответ

Там может быть несколько способов сделать это. Один из способов использования tapply - получить sum из Quantity для каждого Product, получить имя максимального значения.

names(which.max(tapply(df$Quantity, df$Products, sum, na.rm  = TRUE)))
#[1] "Laminated"
0
Ronak Shah 19 Авг 2019 в 10:20

Вы можете использовать пакет data.table. Сначала сделайте сумму, затем отсортируйте ее в порядке убывания на основе агрегированного значения. Затем принесите первый ряд.

tb = data.frame("Products" =c("Laminated", "Laminated", "Laminated", "Laminated", "SUPERSTAR", "TAMAX", "TAMAX", "TAMAX", "GreenDragon", "GreenDragon", "XPLODE", "XPLODE", "EXPERT", "KHANJARBIOSL"), "Quantity" = c(520,150,639,702,3,500,20,40,40,50,40,20,40,40))


library(data.table)

tb = data.table(tb)

tb[,sum(Quantity), by="Products"][order(-V1)][1]
0
user151444 19 Авг 2019 в 10:37