Как создать диаграмму для нескольких зависимых переменных из набора данных WeightLoss?

Я пытаюсь сделать коробочную диаграмму из набора данных WeightLoss из пакета car. Интересующие переменные разделены по месяцам, поэтому я сделал диаграммы по месяцам отдельно, показывая все группы (Контроль, Диета, Диета и Упражнения). Я только хочу получить блок-график групповой диеты и их потери веса за 3 месяца в 1 блок-графике вместо 3. Чтобы уточнить, мне нужны ylab = "Weight loss" и xlab = "Month" в качестве осей. Я понятия не имею, как это сделать.

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

library(car)
library(DescTools)

boxplot(wl1 ~ group, data=WeightLoss, 
        main = "Weight Loss after 1 month",
        ylab = "Weight loss",
        xlab = "Group")
boxplot(wl2 ~ group, data=WeightLoss, 
        main = "Weight Loss after 2 months",
        ylab = "Weight loss",
        xlab = "Group")
boxplot(wl3 ~ group, data=WeightLoss, 
        main = "Weight Loss after 3 months",
        ylab = "Weight loss",
        xlab = "Group")

Я попытался отделить группу, которую хотел только так:

boxplot(wl1 ~ group$Diet, data=WeightLoss,  
        main = "Weight Loss after 1 month",
        ylab = "Weight loss",
        xlab = "Group")

но я продолжаю получать эту ошибку:

Error in group$diet : $ operator is 
    invalid for atomic vectors

Переменная диеты не существует.

Jose Victor Zambrana 19.12.2022 02:02
Стоит ли изучать 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 называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
4
1
52
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Пытаться

boxplot(wl1 ~ as.character(group),
         data= 
   WeightLoss[WeightLoss$group= = "Diet", ],
         main = "Weight Loss after 1 month",
         ylab = "Weight loss",
         xlab = "Group")

Вы можете сделать более чистый код, используя subset= аргумент boxplot

kjetil b halvorsen 19.12.2022 03:03
Ответ принят как подходящий

Мы могли бы сначала subset сгруппировать диету, а затем reshape месяцы в длинном формате (сначала заполнив столбец ID).

library(car)  ## to load `WeightLoss` data

subset(cbind(WeightLoss, id=seq_len(nrow(WeightLoss))), group == 'Diet') |>
  reshape(varying=c("wl1", "wl2", "wl3"), timevar='months', dir='long', sep='') |>
  boxplot(wl ~ months, data=_)

График показывает потерю веса в соответствующем месяце.

Спасибо за это! Мне любопытно, где формируется объект wl? Я хотел бы сделать еще один блок-график, но с использованием переменной самооценки (se1, se2, se3). Я не уверен, что изменить? Я изменил wl на se и снова объект не был найден. Любые подсказки, чтобы обойти это? Спасибо!

struggling student 19.12.2022 10:45

@strugglingstudent Это varying= аргумент reshape. Пожалуйста, смотрите редактирование, где я сделал это более явным. На самом деле лучше использовать имена вместо цифр, простите за лень.

jay.sf 19.12.2022 10:52

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