Построить график бинарных частот на нескольких уровнях в R


У меня есть набор данных, содержащий бинарные ответы участников на определенные вопросы. Эти вопросы могут иметь 3 различных базовых условия и одно изменение 0/1; то есть вопросы могут быть обозначены как 1.0, 1.1, 2.0,... и 3.1. Мой набор данных содержит каждый ответ в отдельной строке, включая столбец для базового условия и один для модификатора (плюс столбец взаимодействия, определяющий комбинации; см. пример ниже).

То, что я хотел бы построить, - это пропорции ответов для каждого вопроса предпочтительно сгруппированы по базовым уровням: т. е. три 2-х полосные группы, показывающие частоту определенного результата.

Вот воспроизводимый пример набора данных для работы, где Base_con, Var, и Dec представляют базовое условие, вариацию и решение (ответ) соответственно:

# load example dataset with relevant columns
require(RCurl)
my_csv = getURL(
  "https://docs.google.com/spreadsheets/d/1x9PUZwPGmye6QDk7_4M_HslrmbgEC3DZ-v-VMvFkE6U/pub?output=csv")
df1 = read.csv(textConnection(my_csv))
# set columns as factors because they are numerically coded
df1$Base_con = as.factor(df1$Base_con)
df1$Var = as.factor(df1$Var)
df1$Dec = as.factor(df1$Dec)
df1$Int = interaction(df1$Base_con, df1$Var)
Я видел, что функция cdplot делает что-то очень близкое к тому, что я ищу, но принимает только одну непрерывную независимую переменную. Я надеюсь, что кто-то может помочь с это не выглядит чем-то очень трудным, но я не нашел ответа ни здесь, ни где-либо еще. Я знаю, что мог бы построить график в другом программном обеспечении, но я предпочел бы научиться делать это в R, и более того, это помогло бы мне проверить данные вместе со статистическим анализом.
1 3

1 ответ:

for(i in unique(df1$Base_con)){
  barplot(c(table(df1$Dec[df1$Base_con == i & df1$Var == 1]),
           table(df1$Dec[df1$Base_con == i & df1$Var == 0])),
          main = paste("Your title goes here" , i),
          xlab = "Your label goes here")
}

Примерный график для Base_con == 2:

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