如何在 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 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

立即開始
廣告