当前位置:K88软件开发文章中心编程全书编程全书02 → 文章内容

在R中计算加权平均数

减小字体 增大字体 作者:佚名  来源:翔宇亭IT乐园  发布时间:2019-1-3 3:02:32

:2018-07-19 23:43:16

对分组的数据可以计算加权平均数(或称为加权平均值)。在计算加权平均数时,先将每组的变量分别乘以各自的频数,然后再除以总次数(或总频数),其计算公式为:

其中,xi为变量,fi为xi出现的次数或频数,n为总次数(或总频数),n = f1 + f2 + ... + fk

fi也称之为xi的权.

在R中,使用weighted.mean()函数来计算加权平均数,其使用格式为:

weighted.mean(x, w, ..., na.rm = FALSE)

参数x为表示数据的向量,w为向量,是对应x各分量的权重。

(1)使用举例如下:

某幼儿园共有儿童458名,其中3岁至6岁儿童的人数分别为90,130,120,118名,试在R中计算该幼儿园儿童的平均年龄。

可以编写程序如下:

x <- 3:6
f <- c(90,130,120,118)
weighted.mean(x, w = f)

计算结果为:4.580 786,即该幼儿园儿童的平均年龄为4.58岁。

(2)再举一例:

某三个县人数分别为:15万人,7万人、10万人,其人均耕地面积分别为:0.15公顷、0.21公顷、0.18公顷,式计算这三个县的人均耕地面积是多少公顷?

编写程序如下:

x <- c(0.15, 0.21, 0.18)
f <- c(15, 7, 10)
weighted.mean(x, w = f)

计算结果为:0.1725,即这三个县的人均耕地面积为0.1725公顷。

(3)第3个例子

学校算期末成绩,期中考试占30%,期末考试占50%,作业占20%,假如某人期中考试得了84,期末92,作业分91,求该学生的加权平均值。

编写程序如下:

grade <- c(84, 92, 91)
weight <- c(0.3,0.5, 0.2)
weighted.mean(grade, w = weight)

计算结果如下:

89.4


在R中计算加权平均数