R中两个或多个二进制变量的直方图

时间:2013-02-28 11:46:33

标签: r histogram

我有两个二进制向量,让我们说:

male  female unknown
0     1      0
0     1      0
1     0      0
0     0      1
1     0      0

我想要这个数据的直方图。类似地,我想要其他向量的直方图,其中可能有更多这样的向量。可以安全地假设所有向量具有相同的长度,它们来自相同的数据帧。

我知道如何通过对每个向量进行计数或求和来做到这一点但是这样做的方法或方法是正确的吗?

TNX。

1 个答案:

答案 0 :(得分:1)

这是一些奇怪的数据,用于显示直方图,但没关系。我会使用ggplot2。如果你融化数据(使用reshape2),那么向量的数量或它们的长度是无关紧要的。

df <- data.frame(male=c(0,0,1,0,1),
                 female=c(1,1,0,0,0),
                 unknown=c(0,0,0,1,0))

df.m <- melt(df)
str(df.m)
hist(df.m$value ~ df.m$variable)
ggplot(df.m, aes(value)) + geom_histogram(aes(fill=variable)) +
  facet_wrap(~variable) #This depends on how you want your different variables split up.

enter image description here     #如果你想要它们在同一个地块上,那么:

ggplot(df.m, aes(value)) + geom_histogram(aes(fill=variable), position="dodge")