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

时间:2016-08-23 18:00:57

标签: r plot frequency binary-data multi-level

我有一个数据集,包括参与者对某些问题的二元答案。这个问题可以有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中做,而且它可以帮助我检查数据和统计分析。

1 个答案:

答案 0 :(得分:2)

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

enter image description here