图表编号为TRUE FALSE与相应的项目

时间:2015-11-06 19:21:26

标签: r

这可能是一个不知道要问什么问题的问题。

这基本上是我到目前为止的结果(远非我想要的)。

a <- c(TRUE, FALSE, TRUE, TRUE)
b <- c("a", "b", "a", "b")
c <- data.frame(cbind(a,b))

qplot(b, a, data=c)

我想做的是:

每个项目A或B都有一个与之关联的TRUE或FALSE值。我想绘制与每个A或B相关的NUMBER个TRUE / FALSE。

我的直觉指向了for循环的方向,例如,

for(1 to x)[if A == TRUE, A-COUNT += 1]

我也可以为B执行此操作,然后只需使用这些生成数字创建新的数据框和图形。但是,我的直觉也说有一个简单的功能可以为我做到这一点。似乎我真正想要的是在x轴上有A和B的条形图以及y轴上的TRUE / FALSE值的计数。

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

首先,您创建data.frame的方式很糟糕。 gitk从两个向量创建一个矩阵。由于矩阵只能容纳一种数据类型,因此您将获得一个字符矩阵。 cbind然后将其转换为具有两个因子列的data.frame。 TLDR:抛弃data.frame

cbind

然后你可以像这样聚集在ggplot2中:

c <- data.frame(a, b)

或者像这样:

library(ggplot2)
ggplot(data = c, aes(x = b, y = as.numeric(a))) +
  stat_summary(fun.y = sum, geom = "point")

或者,你可以使用ggplot(data = c, aes(x = b, fill = a)) + stat_bin(geom = "bar", position = "stack") (在其他一个可以拆分 - 应用 - 组合的函数的分数上)聚合在ggplot2之外。

答案 1 :(得分:1)

使用parser.add_argument('-q', '--quarter', type=int, choices=[1,2,3,4], help="...") 并与您已经完成的工作保持一致。

aggregate