2016-07-31 56 views
0

我一直在寻找答案,但我无法找到一个这个问题(也许我太笨了,不能使用其他答案,因为我是新的到R)。从两个数据帧(每个1条)的一个ggplot

我有两个不同数量的行的数据帧。我想为每个数据框创建一个包含单个条的图。两者应具有相同的长度,并且不同变量的数量应该相互堆叠。例如:我想比较那些与数据集的性别比例。

t1<-data.frame(cbind(c(1:6), factor(c(1,2,2,1,2,2)))) t2<-data.frame(cbind(c(1:4), factor(c(1,2,2,1))))

1表示男性,2代表女性 我想创建两个barplots彼此相邻表示,性别的在第一数据帧中的比例是2:4和在第二个2 :2。

我的尝试是这样的:

ggplot() + geom_bar(aes(1, t1$X2, position = "fill")) + geom_bar(aes(1, t2$X2, position = "fill"))

这导致了错误: “错误:stat_count()不得带Y审美中使用。”

+1

请仔细阅读本http://stackoverflow.com/help/mcve并据此编辑你的问题。你可以使用函数'dput'来提供你的日期,以使你的问题可以重现。 – Alex

回答

1

首先我应该合并两个数据框。您需要添加一个变量来标识数据的来源,在两个数据框中添加一个带有ID的列(如t1和t2)。请记住,您的columname在两个框架中都是相同的,因此您可以使用函数rbind。

t1$data <- "t1" 
t2$data <- "t2" 
t <- (rbind(t1,t2)) 

现在你可以让剧情:

ggplot(t[order(t$X2),], aes(data, X2, fill=factor(X2))) +   
geom_bar(stat="identity", position="stack")