【发布时间】:2014-07-22 12:23:38
【问题描述】:
我有一个这样的数据框:
data <- data.frame(Sex = c("female", "male", "male", "female"),
A1 = c(T,T,F,F),
A2 = c(T,F,F,F),
A3 = c(T,T,T,F))
我想要一个单一的条形图,它向我显示 A1、A2 和 A3 按女性和男性分组的 Trues 的频率。
我试过了:
# table:
a <- round(prop.table(table(data$Sex, data$A1))*100, 4)
b <- round(prop.table(table(data$Sex, data$A2))*100, 4)
c <- round(prop.table(table(data$Sex, data$A3))*100, 4)
propVars <- cbind(a, b, c)
# remove false:
propVars <- propVars[,c(2,4,6)]
# plot:
barplot(propVars,beside = T)
但现在我得到了 x 轴上的 Trues 和不同条形的性别。但我喜欢让女性在 x 轴的左侧,男性在 x 轴的右侧。对于 A1、A2 和 A3,我想要一个条形图,显示每一侧的真实频率,一个用于女性,一个用于男性。我希望你明白:)
谢谢
【问题讨论】:
-
您是否对
ggplot2或lattice等其他绘图库开放,或者它应该是基本的 R 条形图? -
如果可能的话应该是基本的 R 条形图。我用它制作了其他一些情节,不想改变外观。但是,如果 r barplot 非常困难,我也会对 ggplot2 或 lattice 解决方案感到满意。
-
您确定这是您正在运行的代码吗?我在
cbind步骤收到投诉(“矩阵的行数必须匹配(参见参数 3)”) -
对不起..你是对的。这不是我正在使用的实际数据框。我把它改成了一个小得多的。但现在我在我的问题中编辑了示例数据框,现在它应该可以工作了。