我的问题如下:我有下表
0 1-5 6-10 11-15 16-20 21-26 27-29
a 0.019 0.300 0.296 0.211 0.117 0.042 0.014
b 0.058 0.448 0.308 0.120 0.042 0.019 0.005
c 0.026 0.277 0.316 0.187 0.105 0.068 0.020
d 0.054 0.297 0.378 0.108 0.108 0.041 0.014
e 0.004 0.252 0.358 0.216 0.102 0.053 0.015
f 0.032 0.097 0.312 0.280 0.161 0.065 0.054
g 0.113 0.500 0.233 0.094 0.043 0.014 0.003
h 0.328 0.460 0.129 0.050 0.020 0.010 0.003
表示我的数据的每个子组(a到h)的一些边际频率(按行)。
我的数据集实际上是长格式(非常长,计数超过10万个条目),前6行如下所示:
RX_SUMM_SURG_PRIM_SITE Nodes.Examined.Class
1 Wedge Resection 1-5
2 Segmental Resection 1-5
3 Lobectomy w/mediastinal LNdissection 6-10
4 Lobectomy w/mediastinal LNdissection 6-10
5 Lobectomy w/mediastinal LNdissection 1-5
6 Lobectomy w/mediastinal LNdissection 11-15
当我按组绘制条形图时(上表只是这两个协变量的交叉列表,并且采用了行边缘概率),这里发生了什么:
我的代码是
ggplot(data.ln.red, aes(x=Nodes.Examined.Class))+geom_bar(aes(x=Nodes.Examined.Class, group=RX_SUMM_SURG_PRIM_SITE))+
facet_grid(RX_SUMM_SURG_PRIM_SITE~.)
实际上,我只会非常高兴地在图的各个y轴(而不是计数)上使用边际频率(即表格中的那些)。
任何人都可以帮我这个吗?
感谢您的帮助! EM
答案 0 :(得分:1)
geom_bar
计算观察的计数和比例。您可以使用..prop..
(旧方式)或calc(prop)
(在较新版本的ggplot2
中引入)来访问这些计算出的比例。使用它作为你的美学。
您还可以摆脱aes
中的geom_bar
,因为这只是ggplot
和facet_grid
所涵盖内容的重复。
看起来您的计数/比例在不同组之间会有很大差异,所以我正在为分面添加免费的y缩放。
以下是虹膜数据的类似情节示例,您可以对其进行建模:
library(tidyverse)
ggplot(iris, aes(x = Sepal.Length, y = calc(prop))) +
geom_bar() +
facet_grid(Species ~ ., scales = "free_y")
由reprex package(v0.2.0)创建于2018-04-06。
修改:计算出的prop
变量在每个组中的比例,而不是所有组中的比例,因此其工作方式不同当x是一个因素。对于分类x,prop
将x视为组;要覆盖此内容,请在group = 0
中添加aes
或其他虚拟值。对不起,我第一次错过了!