在 R 中绘制跨多个级别的二进制频率

Plot binary frequencies across multiple levels in R

我有一个数据集,其中包含参与者对某些问题的二元答案。这个问题可以有 3 个不同的基本条件,和一个 0/​​1 的变化;也就是说,问题可以指定为 1.0、1.1、2.0……和 3.1。我的数据集将每个答案保存在不同的行中,包括基本条件列和修饰符列(加上确定组合的交互列;参见下面的示例)。

我想绘制的是每个问题的答案比例,优先按基本级别分组:即三个 2 条组显示特定结果的频率。

这是一个可重现的示例数据集,其中 Base_conVarDec 分别代表基本条件、变体和决策(答案):

# 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 中进行操作,而且它会帮助我检查数据以及进行统计分析。

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的示例图: