R 如何从两个不同的数据框创建绘图(或者如何将具有相同列名的数据框组合在一起)
我有两个数据帧,我想在它们之间进行比较。绘图和数据帧看起来是这样的R 如何从两个不同的数据框创建绘图(或者如何将具有相同列名的数据框组合在一起),r,tidyverse,R,Tidyverse,我有两个数据帧,我想在它们之间进行比较。绘图和数据帧看起来是这样的 df2019 <- data.frame(Institute = c("A","B","C"),Women = c(65,50,70),Men = c(35,50,30)) df2016 <- data.frame(Institute = c("A","B","C"),Women = c(70,45
df2019 <- data.frame(Institute = c("A","B","C"),Women = c(65,50,70),Men = c(35,50,30))
df2016 <- data.frame(Institute = c("A","B","C"),Women = c(70,45,50),Men = c(30,55,50))
df2019_melted <- melt(df2019)
ggplot(data = df2019_melted, aes(x = Institute, y = value, fill = variable))+
geom_bar(stat = "identity", position = "dodge")+
labs(fill = "Gender")+
xlab("Institute")+
ylab("Percent")+
scale_fill_discrete(labels = c("Women","Men"))+
ggtitle("Overall Gender Composition 2019")
df2019在数据框中添加一列年份,然后合并并融合。ggplot希望所有内容都在一个data.frame中
all_melted <- reshape2::melt(
rbind(cbind(df2019, year=2019), cbind(df2016, year=2016)),
id=c("year", "Institute"))
ggplot(all_melted, aes(x = Institute, y = value, fill = variable, alpha=factor(year)))+
geom_col(position = "dodge")+
labs(fill = "Gender")+
xlab("Institute")+
ylab("Percent")+
scale_alpha_discrete(range=c(.4, 1), name="Year") +
ggtitle("Overall Gender Composition")