Есть ли функция, с помощью которой я могу найти комбинацию значений в наборе данных, которая в среднем имеет самые большие значения?

Это инструкции, которые даны:

В 2012 году и до этого времени сеть пиццерий в Австралии Eagle Boys (перешедшая под контроль Pizza Hut в 2016 году) провела рекламную кампанию, в которой несколько заявлений о размере их пиццы, а также пиццы их основного конкурента, Domino's. , были сделаны. Файл pizza.csv содержит данные, на которых основывается их кампания. Для каждой из 250 рассматриваемых пицц вам предоставляется сеть, из которой она поступает, тип корочки, начинки и диаметр пиццы (в см).

Вопрос, на который я должен ответить, заключается в следующем:

Какая комбинация типа корочки, начинки и цепочки, из которой поступает пицца, дает в среднем самые большие пиццы? Какая комбинация дает самую маленькую пиццу?

Это графики, которые мне удалось создать, но я все еще сравниваю только два столбца.

это коррелирующий код:

par(mfrow = c(1, 2))
boxplot(dominos$Diameter ~ dominos$CrustDescription)
boxplot(dominos$Diameter ~ dominos$Topping)

Добро пожаловать в СО! Если вы предоставите воспроизводимый примерhead() ваших данных, людям будет намного проще вам помочь. Я думаю, вы довольно быстро получите ответ на этот вопрос, поскольку он звучит просто, особенно если вам разрешено использовать dplyr или data.table.

SamR 07.05.2022 11:15

С dplyr этот вопрос требует использования group_by и суммирования, поиграть с этими функциями, немного застрять, разобраться и пожинать плоды в долгосрочной перспективе.

jpenzer 07.05.2022 13:08
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
2
52
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

попробуй это

library(tidyverse)

df<-read.csv("pizza.csv")
df %>% group_by(CrustDescription, Topping, Chain) %>%
summarize(avg = mean(Diameter))

Надеюсь, поможет...

спасибо большое, получилось! сделал мой день :)

Maria Promegger 07.05.2022 15:03
Ответ принят как подходящий

Вероятно, у вас есть данные, подобные этому

dat
#   chain crust topping diameter
# 1     Y     B       M 27.10686
# 2     X     C       L 29.70423
# 3     Y     A       L 27.57106
# 4     Y     A       L 27.88939
# 5     X     A       M 29.61035
# 6     X     C       K 29.77217

Во-первых, у boxplot есть интерфейс формулы, который вы можете использовать.

boxplot(diameter ~ crust + topping + chain, dat)

Во-вторых, эту же формулу можно использовать в действительно очень важной aggregateфункции, которая позволяет применить любое FUNдействие к агрегированным данным.

a <- aggregate(diameter ~ crust + topping + chain, dat, FUN=mean)

На втором этапе вам нужны диаметры, равные max и min.

a[a$diameter == max(a$diameter), ]
#   crust topping chain diameter
# 3     C       K     X 28.21241

a[a$diameter == min(a$diameter), ]
#    crust topping chain diameter
# 18     C       M     Y  26.6717

Данные:

n <- 250
dat <- expand.grid(chain=LETTERS[24:25], crust=LETTERS[1:3], topping=LETTERS[11:13])  
dat <- dat[rep(seq_len(nrow(dat)), n/2), ]
set.seed(42)
dat$diameter <- runif (nrow(dat), 25, 30)
dat <- dat[sample(seq_len(nrow(dat)), n), ] 

Другие вопросы по теме