Я пытаюсь сделать коробочную диаграмму из набора данных 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
Пытаться
boxplot(wl1 ~ as.character(group),
data=
WeightLoss[WeightLoss$group= = "Diet", ],
main = "Weight Loss after 1 month",
ylab = "Weight loss",
xlab = "Group")
Вы можете сделать более чистый код, используя subset=
аргумент boxplot
Мы могли бы сначала 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
и снова объект не был найден. Любые подсказки, чтобы обойти это? Спасибо!
@strugglingstudent Это varying=
аргумент reshape
. Пожалуйста, смотрите редактирование, где я сделал это более явным. На самом деле лучше использовать имена вместо цифр, простите за лень.
Переменная диеты не существует.