如何使用均值函数而不是 colMeans 查找 R 数据框中多列的均值?

查找 R 数据帧的列均值的最简单方法是使用 colMeans 函数,但如果我们不想使用它,则可以在 sapply 的帮助下完成。在使用 sapply 时,我们需要确保我们只选择数据框的数字列。查看以下示例以了解其工作原理。

示例 1

考虑基础 R 中的 CO2 数据框 -

> head(CO2,20)
输出结果
  Plant  Type  Treatment  conc  uptake

1   Qn1 Quebec nonchilled  95   16.0

2   Qn1 Quebec nonchilled  175  30.4

3   Qn1 Quebec nonchilled  250  34.8

4   Qn1 Quebec nonchilled  350  37.2

5   Qn1 Quebec nonchilled  500  35.3

6   Qn1 Quebec nonchilled  675  39.2

7   Qn1 Quebec nonchilled  1000 39.7

8   Qn2 Quebec nonchilled  95   13.6

9   Qn2 Quebec nonchilled  175  27.3

10  Qn2 Quebec nonchilled  250  37.1

11  Qn2 Quebec nonchilled  350  41.8

12  Qn2 Quebec nonchilled  500  40.6

13  Qn2 Quebec nonchilled  675  41.4

14  Qn2 Quebec nonchilled  1000 44.3

15  Qn3 Quebec nonchilled  95   16.2

16  Qn3 Quebec nonchilled  175  32.4

17  Qn3 Quebec nonchilled  250  40.3

18  Qn3 Quebec nonchilled  350  42.1

19  Qn3 Quebec nonchilled  500  42.9

20  Qn3 Quebec nonchilled  675  43.9

寻找 CO2 数值列的平均值 -

> sapply(Filter(is.numeric,CO2),mean)
输出结果
conc uptake

435.0000 27.2131

例2

考虑基础 R 中的 mtcars 数据框 -

> head(mtcars,20)
输出结果
          mpg cyl disp hp drat wt qsec vs am gear carb

Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4

Mazda RX4 Wag 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4

Datsun 710 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1

Hornet 4 Drive 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1

Hornet Sportabout 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2

Valiant 18.1 6 225.0 105 2.76 3.460 20.22 1 0 3 1

Duster 360 14.3 8 360.0 245 3.21 3.570 15.84 0 0 3 4

Merc 240D 24.4 4 146.7 62 3.69 3.190 20.00 1 0 4 2

Merc 230 22.8 4 140.8 95 3.92 3.150 22.90 1 0 4 2

Merc 280 19.2 6 167.6 123 3.92 3.440 18.30 1 0 4 4

Merc 280C 17.8 6 167.6 123 3.92 3.440 18.90 1 0 4 4

Merc 450SE 16.4 8 275.8 180 3.07 4.070 17.40 0 0 3 3

Merc 450SL 17.3 8 275.8 180 3.07 3.730 17.60 0 0 3 3

Merc 450SLC 15.2 8 275.8 180 3.07 3.780 18.00 0 0 3 3

Cadillac Fleetwood 10.4 8 472.0 205 2.93 5.250 17.98 0 0 3 4

Lincoln Continental 10.4 8 460.0 215 3.00 5.424 17.82 0 0 3 4

Chrysler Imperial 14.7 8 440.0 230 3.23 5.345 17.42 0 0 3 4

Fiat 128 32.4 4 78.7 66 4.08 2.200 19.47 1 1 4 1

Honda Civic 30.4 4 75.7 52 4.93 1.615 18.52 1 1 4 2

Toyota Corolla 33.9 4 71.1 65 4.22 1.835 19.90 1 1 4 1

查找 mtcars 数值列的平均值 -

> sapply(Filter(is.numeric,mtcars),mean)
输出结果
mpg cyl disp hp drat wt qsec

20.090625 6.187500 230.721875 146.687500 3.596563 3.217250 17.848750

vs am gear carb

0.437500 0.406250 3.687500 2.812500

例3

考虑基础 R 中的橙色数据 -

> head(Orange,20)
输出结果
  Tree age   circumference

1    1 118   30

2    1 484   58

3    1 664   87

4    1 1004  115

5    1 1231  120

6    1 1372  142

7    1 1582  145

8    2 118   33

9    2 484   69

10   2 664   111

11   2 1004  156

12   2 1231  172

13   2 1372  203

14   2 1582  203

15   3 118   30

16   3 484   51

17   3 664   75

18   3 1004  108

19   3 1231  115

20   3 1372  139

查找橙色数字列的平均值 -

> sapply(Filter(is.numeric,Orange),mean)
输出结果
age circumference

922.1429 115.8571

例4

考虑基础 R 中的 ToothGrowth 数据 -

> head(ToothGrowth,20)
输出结果
  len  supp dose

1 4.2   VC  0.5

2 11.5  VC  0.5

3 7.3   VC  0.5

4 5.8   VC  0.5

5 6.4   VC  0.5

6 10.0  VC  0.5

7 11.2  VC  0.5

8 11.2  VC  0.5

9 5.2   VC  0.5

10 7.0  VC  0.5

11 16.5 VC  1.0

12 16.5 VC  1.0

13 15.2 VC  1.0

14 17.3 VC  1.0

15 22.5 VC  1.0

16 17.3 VC  1.0

17 13.6 VC  1.0

18 14.5 VC  1.0

19 18.8 VC  1.0

20 15.5 VC  1.0

查找 ToothGrowth 数值列的平均值 -

> sapply(Filter(is.numeric,ToothGrowth),mean)
输出结果
len dose

18.813333 1.166667

例5

考虑基数 R 中的 USArrests 数据 -

> head(USArrests,20)
输出结果
           Murder  Assault UrbanPop  Rape

Alabama     13.2   236       58      21.2

Alaska      10.0   263       48      44.5

Arizona     8.1    294       80      31.0

Arkansas    8.8    190       50      19.5

California  9.0    276       91      40.6

Colorado    7.9    204       78      38.7

Connecticut 3.3    110       77      11.1

Delaware    5.9    238       72      15.8

Florida    15.4    335       80      31.9

Georgia    17.4    211       60      25.8

Hawaii      5.3    46        83      20.2

Idaho       2.6    120       54      14.2

Illinois   10.4    249       83      24.0

Indiana     7.2    113       65      21.0

Iowa        2.2    56        57      11.3

Kansas      6.0    115       66      18.0

Kentucky    9.7    109       52      16.3

Louisiana  15.4    249       66      22.2

Maine       2.1    83        51       7.8

Maryland   11.3    300       67      27.8

查找 USArrests 数值列的平均值 -

> sapply(Filter(is.numeric,USArrests),mean)
输出结果
Murder Assault UrbanPop  Rape

7.788  170.760 65.540   21.232

以上是 如何使用均值函数而不是 colMeans 查找 R 数据框中多列的均值? 的全部内容, 来源链接: utcz.com/z/353608.html

回到顶部