与R中的均值(分位数())和均值()不同的均值

与R中的均值(分位数())和均值()不同的均值,r,mean,quantile,R,Mean,Quantile,我使用R的“分位数”函数来计算数据集的百分位数。但由于以下命令返回的平均值不同,我感到困惑 mean(quantile(DataSet$V3, prob=c(5,50,95)/100,type=8)); 它给了我101.26 mean(quantile(DataSet$V3,type=8)); 它给了我105.27 及 它给了我109.9 如果有人能回答我为什么平均值在三种情况下不同,我将非常感激 问候,, Zoraze分位数是通过首先按顺序对数据向量进行排序,然后将数据划分为部分来获得的

我使用R的“分位数”函数来计算数据集的百分位数。但由于以下命令返回的平均值不同,我感到困惑

mean(quantile(DataSet$V3, prob=c(5,50,95)/100,type=8));
它给了我
101.26

mean(quantile(DataSet$V3,type=8)); 
它给了我
105.27

它给了我
109.9

如果有人能回答我为什么平均值在三种情况下不同,我将非常感激

问候,,
Zoraze

分位数是通过首先按顺序对数据向量进行排序,然后将数据划分为部分来获得的,这些部分由
quantile()
函数中的
prob=
定义。 假设数据是

x <- c(9,3,1,10,2)
中位数有50%的数据在下方,50%在上方。此处,数据项3位于列表的“中间”(从任意一端算起的第三个)。您还可以使用

> quantile(x)
0%  25%  50%  75% 100% 
1    2    3    9   10 
平均值(x)
中获得的平均值也可以通过将所有值相加并除以值的数量,从第一原理中计算出来

> (1 + 2 + 3 + 9 + 10)/5
[1] 5
或者使用求和函数

> sum(x)/5
[1] 5

正如第一位评论者所指出的,计算分位数和平均数是对数据的完全不同的操作。这通常包含在任何入门级统计课本中。

您在前两种情况下计算的是
quantile()
函数输出的平均值,这与计算整个列的平均值不同。非常感谢您的回复,我不这么认为。感谢您的帮助。你好,懒汉,非常感谢您的详细回答,我知道分位数函数是如何计算百分位数的,但我不认为平均值(分位数(数据集$V3,prob=c(5,50,95)/100,type=8))只是返回平均值/平均值(5%,50%和95%)。再次感谢。在R中,您可以“展开”一系列嵌套函数,因此分位数(…)是第一件事,然后均值(分位数(…)将均值函数应用于分位数函数的结果。有点像剥洋葱皮。这就是(反向)波兰计算器的工作原理,也被称为“函数式编程”。这种类型的思维是在R中“应用”和“有用”的超有用函数背后形成的,所以谷歌可以帮助他们更好地理解广义的概念。
> (1 + 2 + 3 + 9 + 10)/5
[1] 5
> sum(x)/5
[1] 5