R - 使用两个数据集创建聚类条形图

R - Creating a clustered barplot with two datasets

我想在 R 中执行以下操作。

我有一组人 (1 - 50),每个人都有两个数据集。每个数据集 (A & B) 的值可以分为两类(收益,以蓝色显示;损失,以红色显示)。我想一起展示这两个数据集,如下所示。 Gains/Losses 的频率在 y 轴上,其中数据集 A 从 x 轴向上,数据集 B 从 x 轴向下。我希望能够按个人(如下所示)或按收益或损失(所有收益加在一起,然后所有损失加在一起)对条形图进行聚类。

我知道如何在 ggplot 中制作聚类条形图,但无法弄清楚如何像我的图像那样组合两个数据集(数据集 A 上升,数据集 B 下降)。

我们可以做类似于age pyramids的事情,只是不翻转坐标

testA <- data.frame(v=as.factor(sample(1:2,1000,replace=T, prob = c(1,5))), dataset='A')
testB <- data.frame(v=as.factor(sample(1:2,1000,replace=T, prob = c(5,1))), dataset='B')

require(ggplot2)
require(plyr)    
ggplot(data=rbind(testA, testB),aes(x=as.factor(v),fill=v)) + 
    geom_bar(subset=.(dataset=="A")) + 
    geom_bar(subset=.(dataset=="B"),aes(y=..count..*(-1)))