R数据帧-一次聚合多个列

R数据帧-一次聚合多个列,r,R,使用如下所示的数据帧df ---------------------- a | b | c ------+-------+------- true | true | true false | true | false false | false | false true | true | false 我需要为a、b和c列中的每一列找到“true”的百分比作为数据框,以便在ggplot中使用。怎么办 注:-“true”不是逻辑上的true我们使用聚集将“宽”格式重塑

使用如下所示的数据帧df

----------------------
a     |  b    |  c 
------+-------+-------
true  | true  | true
false | true  | false
false | false | false
true  | true  | false
我需要为a、b和c列中的每一列找到
“true”
的百分比作为数据框,以便在ggplot中使用。怎么办


注:-
“true”
不是逻辑上的
true

我们使用
聚集
将“宽”格式重塑为“长”格式,然后找到每个“组”的“true”的
平均值,并使用
几何条形图
进行条形图绘制

library(dplyr)
library(tidyr)
library(ggplot2)
library(scales)
gather(df1, group, value) %>% 
       group_by(group) %>% 
       summarise(perc= mean(value=="true")) %>% 
       ggplot(., aes(x=group, y=perc)) + 
               geom_bar(stat="identity") +
               scale_y_continuous(labels = percent)

注意:假设列是
字符

这很有效,请注意
是按字母顺序排序的-有什么方法可以避免吗?@user3206440您可以使用
group_by(group=factor(group,levels=lvls))%%>%