这可能是一个不知道要问什么问题的问题。
这基本上是我到目前为止的结果(远非我想要的)。
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值的计数。
感谢您的帮助。
答案 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