У меня есть фрейм данных df, содержащий 3 числовые переменные, 1 результат и 1 категориальную переменную
Мне нужно выполнить процедуру, которая включает в себя фильтрацию df по различным уровням категории A или B, а затем выгрузить ихв функцию, такую как binnedplot, чтобы проверить взаимодействие между категориальными и числовыми переменными.
sample df:
set.seed(10)
df=data.frame(num1=sample(100,60),
num2=sample(100,60),
num3=sample(100,60),
category=as.factor(rep(c("A","B"),30)),
outcome=sample(c(0,1),60, replace=T))
df1=df%>%filter(category=="A")
df2=df%>%filter(category=="B")
binnedplot(df1$num1, df1$outcome)
binnedplot(df2$num1, df2$outcome)
binnedplot(df1$num2, df1$outcome)
binnedplot(df2$num2, df2$outcome)
binnedplot(df1$num3, df1$outcome)
binnedplot(df2$num3, df2$outcome)
Обновление:
split.dfs<-split(df, df$category)
par(mar=c(1,1,1,1))
par(mfcol=c(2,1))
lapply(split.dfs, function(x) lapply(df[1:3], function(x) binnedplot(x, df$outcome, main=df$category)))
Сначала я задавался вопросом, какмогу ли я сделать это с помощью функции более масштабируемым способом, например, я могу обрабатывать больше числовых и категориальных столбцов без слишком большого количества повторений.
Теперь с обновленным кодом (все еще есть ошибка) моя главная проблема - как маркировать3 панели 2х1 с правильным заголовком категории и как обозначить ось х с помощью num1 / num2 / num3 для ясности графика.