如何在 R 数据框的一列中找到修剪后的均值?


修剪后的均值是指通过排除一小部分最小值和最大值来找到值的均值。如果我们有 5% 的修剪后的均值,这意味着数据中 2.5% 的最小值和 2.5% 的最大值被修剪掉,然后计算剩余数据的均值。

在 R 中,我们可以简单地在 mean 函数内部使用 trim 参数来找到修剪后的均值。请查看下面的示例以了解如何实现。

示例 1

以下代码片段创建了一个示例数据框 -

x<-rpois(20,10)
df1<-data.frame(x)
df1

创建了以下数据框

   x
1  9
2  9
3  13
4  10
5  10
6  7
7  14
8  9
9  4
10 13
11 17
12 9
13 12
14 13
15 7
16 7
17 7
18 7
19 11
20 8

要在上面创建的数据框中找到 df1 中 x 列的 5% 修剪后的均值,请将以下代码添加到上述代码片段中 -

x<-rpois(20,10)
df1<-data.frame(x)
mean(df1$x,trim=0.05)

输出

如果将上面给出的所有代码片段作为单个程序执行,它将生成以下输出 -

[1] 9.722222

示例 2

以下代码片段创建了一个示例数据框 -

y<-rnorm(20)
df2<-data.frame(y)
df2

创建了以下数据框

y
1 -0.2275112
2 -0.3068841
3 1.4224841
4  -0.2046823
5  -0.6992631
6   1.3496018
7  -1.3079773
8   1.7224761
9   0.4276027
10  0.7502251
11 -0.5527819
12  0.5962074
13 -1.4589839
14  1.8237570
15 -0.4459367
16  0.6482315
17  1.3998148
18 -0.7622238
19  1.1308999
20 -0.2575229

要在上面创建的数据框中找到 df2 中 y 列的 5% 修剪后的均值,请将以下代码添加到上述代码片段中 -

y<-rnorm(20)
df2<-data.frame(y)
mean(df2$y,trim=0.05)

输出

如果将上面给出的所有代码片段作为单个程序执行,它将生成以下输出 -

[1] 0.2601533

示例 3

以下代码片段创建了一个示例数据框 -

z<-rexp(20)
df3<-data.frame(z)
df3

创建了以下数据框

           z
1  3.41614687
2  0.29851851
3  0.72436257
4  0.65434257
5  1.11213684
6  0.08191155
7  2.03424614
8  0.53371331
9  0.08343326
10 0.37775986
11 0.30124390
12 0.42210175
13 0.86609511
14 1.62482612
15 1.30000247
16 4.68351724
17 0.40375151
18 0.36646246
19 0.92898766
20 0.47307554

要在上面创建的数据框中找到 df3 中 z 列的 5% 修剪后的均值,请将以下代码添加到上述代码片段中 -

z<-rexp(20)
df3<-data.frame(z)
mean(df3$z,trim=0.05)

输出

如果将上面给出的所有代码片段作为单个程序执行,它将生成以下输出 -

[1] 0.8845115

更新于: 2021-11-02

477 次浏览

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告