Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 通过计算观察值的数量来归一化直方图_R_Ggplot2 - Fatal编程技术网

R 通过计算观察值的数量来归一化直方图

R 通过计算观察值的数量来归一化直方图,r,ggplot2,R,Ggplot2,我的数据有三个不同的变量,我试图用R和ggplot2绘制三个不同的直方图。我发现您可以使用y=…count../sum(…count..)作为aes选项来规范化此数据。然而,这并没有按照我想要的方式使其正常化。相反,我想除数。。通过每个变量的观察次数。然而,虽然我的两个变量具有相同数量的观察值,但我的最后一个变量没有。前两个变量有10700个观测值,而第三个变量有20000个观测值 如果我分开这两个变量,我可以生成正确的直方图,但我想一起创建它们,这样我可以正确地比较它们。下面是我的两个变量的工

我的数据有三个不同的变量,我试图用R和ggplot2绘制三个不同的直方图。我发现您可以使用y=…count../sum(…count..)作为aes选项来规范化此数据。然而,这并没有按照我想要的方式使其正常化。相反,我想除数。。通过每个变量的观察次数。然而,虽然我的两个变量具有相同数量的观察值,但我的最后一个变量没有。前两个变量有10700个观测值,而第三个变量有20000个观测值

如果我分开这两个变量,我可以生成正确的直方图,但我想一起创建它们,这样我可以正确地比较它们。下面是我的两个变量的工作代码

ggplot(data = melt(data_go), mapping = aes(x = value)) + geom_histogram(aes(y=..count../10600),breaks = seq(0,10,by = 1)) + facet_wrap(~variable, scales = 'free_x')
我的数据如下表所示,我使用第一行代码制作R中的直方图。这会为每个变量创建三个不同的直方图(这是正确的)


TLDR:我如何计算每个变量的观察数,并在命令中使用它来创建标准化直方图(计数/观察数)?

类似于这行,尽管您的里程数可能会有所不同,因为我不清楚您的数据集是什么样的

ggplot(data=melt(data_go)) + stat_count(mapping = aes(x=value, y=..prop.., group=1), width=.2)+
  facet_wrap(~variable, scales = 'free_x')+
  scale_y_continuous(labels = scales::percent)

谢谢你的意见!我的数据集是csv文件,它们被组织(在excel中打开时)为4列,第一列为名称(与直方图无关),第二列和第三列分别为10700个观察值的数据值,第四列为20000个观察值的数据值。它们在R中格式化为数据帧的方式是名称作为第一列,变量作为第二、第三和第四列的标题,所以不管它是什么变量。最后一个是我制作柱状图的值。事实上,这不适用于我的数据,我想继续使用geom_柱状图。y=…道具。。似乎是正确的,但它没有任何阴谋。
ggplot(data=melt(data_go)) + stat_count(mapping = aes(x=value, y=..prop.., group=1), width=.2)+
  facet_wrap(~variable, scales = 'free_x')+
  scale_y_continuous(labels = scales::percent)