#r #plot #ggplot2 #facet #one-hot-encoding
#r #построить график #ggplot2 #фасет #одно-горячее кодирование
Вопрос:
У меня есть фрейм данных (df2) с возрастом, информацией, целью, а также информацией, преобразованной в столбцы с одним горячим кодом, как показано ниже.
library(qdapTools)
require(reshape)
mydf <- structure(list(Age = c(99L, 10L, 40L, 15L),
Info = c("good, bad, sad", "nice, good, happy, joy", "NULL", "okay, nice, good, wild, go"),
Target = c("Boy", "Girl", "Boy", "Boy")),
.Names = c("Age", "Info", "Target"),
row.names = c(NA, 4L),
class = "data.frame")
df_with_ohe <- cbind(mydf, mtabulate(strsplit(mydf$Info, ", ")))
mydf
df_with_ohe
added_cols = names(df_with_ohe)[length(names(mydf)) 1:length(names(df_with_ohe))]
[1] "bad" "go" "good" "happy" "joy" "nice" "NULL" "okay" "sad" "wild"
И это df2
Age Info Target bad go good happy joy nice NULL okay sad wild
1 99 good, bad, sad Boy 1 0 1 0 0 0 0 0 1 0
2 10 nice, good, happy, joy Girl 0 0 1 1 1 1 0 0 0 0
3 40 NULL Boy 0 0 0 0 0 0 1 0 0 0
4 15 okay, nice, good, wild, go Boy 0 1 1 0 0 1 0 1 0 1
Я хочу построить график распределения возраста для разных типов информации, т.Е. График для «хорошего», для «плохого» и так далее. Например:
# considering on "good" column
df = subset(df_with_ohe, df_with_ohe[,"good"] == 1)
ggplot(df, aes(Target, Age)) geom_boxplot()
Как мне фасетировать такой график для всех added_cols
столбцов, используя объекты с одним горячим кодом, на одном графике? Возможно, с использованием фасета?