Основной шаг - превратить ваши данные в так называемый набор данных tidy ( см. Здесь ).
Пакет tidyr
имеет функцию gather
длятолько для этой цели:
library(ggplot2)
library(tidyr)
df = data.frame(
Cat1 = rnorm(50),
Cat2 = rnorm(50),
Cat3 = rnorm(50)
)
# 'long' version of df
dL = gather(df,key = 'category',value = 'y')
ggplot(data = dL) +
geom_boxplot(mapping = aes(x = category,y = y))
Транспонирование - это больше матричная операция, чем операция с кадрами;в любом случае не ясно, что транспонирование могло бы помочь чему-либо, но кодирование ваших данных в менее компактное, но более простое представление (через gather
) делает его доступным для API ggplot.