在R中绘制二进制变量

时间:2016-03-25 00:39:28

标签: r binary bar-chart

我有一个数据框,我在其中创建了一个变量(data$adtype),用于广告的基调是正还是负。因此,如果它是正数,则广告得到零,然后广告得到1.因此,我正在做广告类型的条形图,但我按状态对数据进行了子集化。所以,(data$adtype[data$state=="NY"])例如。对于同时包含正面和负面广告的州,它会正确绘制图表。问题是,对于只播放正面广告的州,它会绘制单个条形图,但它甚至不会在图表上包含其他变量。

例如,当我执行table(data$adtype[data$sate=="NY"])时 它可能会说:

0       1 
2500    3000

这意味着有2500个正面广告和3000个负面广告,它会绘制两个条形图。

现在,如果新泽西州只有正面广告,而且没有负面广告

table(data$adtype[data$sate=="NJ"])

我希望此代码返回以下内容

0     1
500   0

其中有500个正面广告和0个负面广告。

相反,它会返回此

0
500

它甚至不会将其他值放在桌子上,也不会将其绘制成图形。

我试图在x轴上生成一个二进制值为0和1的图形,即使其中一个值中没有广告,它仍会包含在曲线图。

希望这是有道理的

1 个答案:

答案 0 :(得分:1)

将变量设为factor

set.seed(1)
x <- rbinom(100, 1, .50)
x <- as.factor(x)
par(mfrow=c(1,2))
barplot(table(x))
barplot(table(x[x==1]))

默认情况下,table不会丢弃未使用的因子级别:

enter image description here