Построение графиков бок о бок для переменной x

#r #graph #sas #boxplot

#r #График #sas #boxplot

Вопрос:

Мне нужна была помощь в построении графиков бок о бок в R или SAS.

Предыстория — мне нужно построить y-переменную по сравнению с x-переменной по группе Z. В настоящее время я могу отображать их отдельно (Existing_PLot) по группе Z в SAS.

Требование должно быть выполнено в соответствии с прилагаемым снимком (Required_Plot).

Мой код в SAS:

 proc sgpanel data=example; 
   panelby groups; 
   vbox y / category=x group=groups; 
run; 
  

Комментарии:

1. Не могли бы вы поделиться своим кодом с некоторыми фиктивными данными и указать, что вы уже пытались? Кроме того, пожалуйста, взгляните сюда .

2. @Dunois Да, конечно! Я использовал следующий код в SAS для создания «existing_plot» — proc sgpanel data=example; panelby groups; vbox y / category= x group=groups; выполнить;

Ответ №1:

То, что вам нужно, можно получить, используя данные в длинном формате, сохраняя переменную id для оси x и перемещая остальные переменные в виде строк. Поскольку данные не включены, я привел пример с использованием iris tidyverse функций и ggplot2 :

 library(ggplot2)
library(dplyr)
library(tidyr)
#Data
data(iris)
#Code
iris %>% pivot_longer(-Species) %>%
  ggplot(aes(x=Species,y=value,fill=name)) 
  geom_boxplot() 
  theme_bw() 
  labs(fill='Var') 
  theme(strip.placement = 'outside',
        strip.background = element_blank(),
        legend.position = 'top',
        axis.text = element_text(color='black',face='bold'),
        axis.title = element_text(color='black',face='bold'),
        legend.text = element_text(color='black',face='bold'),
        legend.title = element_text(color='black',face='bold'),
        strip.text = element_text(color='black',face='bold')) 
  labs(x='Node',fill='Variable')
  

Вывод:

введите описание изображения здесь

Комментарии:

1. Большое вам спасибо! Это именно то, что я искал. Ценю помощь.

2. @snanavati Отлично!

Ответ №2:

То, что вы описываете, используется по умолчанию в SAS с помощью PROC SGPLOT. PROC SGPANEL существует специально для выполнения того, что вы показали в своем первом примере, но обычный процесс — SGPLOT, и он делает то, что вы просите.

 proc sgplot data=sashelp.cars;
  vbox mpg_city/category=type group=origin;
run;