R数据帧-一次聚合多个列
使用如下所示的数据帧dfR数据帧-一次聚合多个列,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我们使用聚集将“宽”格式重塑
----------------------
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))%%>%