R 数据帧中0的条形图编号。按组填充

R 数据帧中0的条形图编号。按组填充,r,ggplot2,count,statistics,bar-chart,R,Ggplot2,Count,Statistics,Bar Chart,我有这个数据集 structure(list(ID = c("1", "2", "3", "4", "1", "2"), Year = c("2017", "2017", "2014", "2014", "2016", "2014"), First = c("Ricardo", "Ricardo", "David", "Johnson", "Rodney", "Duron"), Last = c("Allen", "Allen", "Amerson", "Bademosi", "McLeo

我有这个数据集

structure(list(ID = c("1", "2", "3", "4", "1", "2"), Year = c("2017", 
"2017", "2014", "2014", "2016", "2014"), First = c("Ricardo", 
"Ricardo", "David", "Johnson", "Rodney", "Duron"), Last = c("Allen", 
"Allen", "Amerson", "Bademosi", "McLeod", "Harmon"), Team = c("ATL", 
"ATL", "OAK", "NE", "PHI", "NE"), Week = c(4, 4, 7, 10, 8, 8), 
    mean_tackles = c(4, 4, 4.33333333333333, 1, 7.33333333333333, 
    1.75), mean_PassesDefended = c(0, 0, 0.333333333333333, 0, 
    0.666666666666667, 0), mean_int = c(0, 0, 0, 0, 0.5, 0), 
    mean_fumbles = c(0, 0, 0, 0, 0.166666666666667, 0), Group = structure(c(1L, 
    1L, 1L, 1L, 2L, 2L), .Label = c("Concussed", "Controls", 
    "Orthopedic"), class = "factor")), .Names = c("ID", "Year", 
"First", "Last", "Team", "Week", "mean_tackles", "mean_PassesDefended", 
"mean_int", "mean_fumbles", "Group"), row.names = c(1L, 2L, 3L, 
4L, 53L, 54L), class = "data.frame")
我想创建以下图表。这给了我一个x轴上第7列到第10列的数据集中零的数量的条形图。填充基于它所代表的组


据我所知,这不能使用ggplot中的
…count…
函数来完成,因为它是一个条件计数。

基本上,将数据争用与可视化分开。首先以所需的形式获取数据帧,然后进行打印。 我不是百分之百确定,但我想你是说这样的事

zerocount.df <- exampledata.df%>%
    select(contains("mean"),Group)%>%
    group_by(Group)%>%
    summarise_all(function(x){sum(x==0)})%>%
    ungroup()%>%
    gather(metric, zerocount, mean_tackles:mean_fumbles)

ggplot(zerocount.df,aes(x=metric,y=zerocount,group=Group,fill=Group))+geom_bar(stat="identity",position="dodge")+theme_bw()
zerocount.df%
选择(包含(“平均值”),组)%>%
分组依据(分组)%>%
汇总_all(函数(x){sum(x==0)})%>%
解组()%>%
聚集(公制、零计数、平均铲球:平均铲球)
ggplot(zerocount.df,aes(x=metric,y=zerocount,group=group,fill=group))+geom_栏(stat=“identity”,position=“dodge”)+theme_bw()

您可以使用
dplyr
事先手动计算计数<代码>数据%>%group\U by(group)%%>%SUMMASE(nzero\U tackles=sum(mean\U tackles=0),…),嗨,史蒂夫,这让我非常接近。我刚把位置改成“堆叠”,它似乎给了我所需要的东西。