如何找到R数据帧所有列的标准差?

要查找R数据帧中所有列的均值,我们可以简单地使用colMeans函数并返回均值。但是对于标准差,我们没有可以使用的任何直接函数。因此,我们可以将sd与apply一起使用,并参考各列以查找R数据帧所有列的标准偏差。例如,如果我们有一个数据帧df,则使用apply函数查找所有列的标准差的语法将为apply(df,2,sd),此处2指的是列。如果要查找行的标准偏差,则只需要将此2替换为1。

示例

请看以下数据帧-

> set.seed(101)

> x1<-rnorm(20,0.5)

> x2<-rnorm(20,1.5)

> x3<-rnorm(20,2.5)

> df1<-data.frame(x1,x2,x3)

> df1

输出结果

      x1          x2       x3

1 0.1739635 1.33624433 2.9824588

2 1.0524619 2.20852210 3.2582138

3 -0.1749438 1.23201945 0.1806726

4 0.7143595 0.03607824 2.0404952

5 0.8107692 2.24443582 1.3946163

6 1.6739663 0.08960982 2.9029283

7 1.1187899 1.96706761 3.0689349

8 0.3872657 1.38067989 1.7939167

9 1.4170283 1.96723896 2.2099094

10 0.2767406 1.99813556 1.0161219

11 1.0264481 2.39493720 1.3497447

12 -0.2948444 1.77915200 2.2255288

13 1.9277555 2.50786575 3.0779010

14 -0.9668197 -0.57310649 1.1030974

15 0.2633166 2.68985338 3.2490577

16 0.3066620 0.77562578 1.4488133

17 -0.3497547 1.66798377 2.6653809

18 0.5584655 2.42033516 3.6298091

19 -0.3176704 -0.17160481 3.6737225

20 -1.5503078 1.94846907 2.0721368

找出df1的所有列的标准偏差-

> apply(df1,2,sd)

x1 x2 x3

0.8667844 0.9730288 0.9738892

让我们看看另外两个示例-

示例

> y1<-rpois(20,2)

> y2<-rpois(20,5)

> y3<-rpois(20,8)

> df2<-data.frame(y1,y2,y3)

> df2

输出结果

 y1 y2 y3

1 1 9 14

2 1 4 9

3 0 9 11

4 2 4 8

5 1 8 6

6 3 3 18

7 2 5 6

8 2 6 12

9 2 1 3

10 0 4 9

11 2 3 9

12 1 5 15

13 1 6 8

14 1 9 10

15 2 2 12

16 2 3 15

17 2 5 10

18 4 7 11

19 2 5 13

20 3 8 9

> apply(df2,2,sd)

y1 y2 y3

0.978721 2.408319 3.545197

示例

> z1<-runif(20,1,2) > z2<-runif(20,1,5) > z3<-runif(20,2,5) > df3<-data.frame(z1,z2,z3) > df3

输出结果

      z1       z2       z3

1 1.907492 3.422703 2.855133

2 1.762290 3.250390 3.475309

3 1.486333 2.107422 3.444077

4 1.250209 1.904570 3.314925

5 1.359045 4.934230 3.312890

6 1.008594 1.393549 2.558971

7 1.235712 4.518207 4.836347

8 1.106235 1.933838 2.436035

9 1.611034 4.089584 4.336852

10 1.204697 2.887437 4.440150

11 1.214610 2.635393 2.660501

12 1.016492 4.292893 2.949746

13 1.328194 3.139884 2.792373

14 1.269595 2.964845 3.565541

15 1.913872 1.057963 2.609570

16 1.417872 3.571295 3.959480

17 1.690566 2.281527 2.831667

18 1.900013 3.137568 3.226023

19 1.207709 4.816393 4.510174

20 1.461033 1.161574 3.305159

> apply(df3,2,sd)

输出结果

   z1       z2          z3

0.2907786 1.1771167 0.7123186

以上是 如何找到R数据帧所有列的标准差? 的全部内容, 来源链接: utcz.com/z/350364.html

回到顶部