如何找到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 x31 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 y31 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 z31 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 z30.2907786 1.1771167 0.7123186
以上是 如何找到R数据帧所有列的标准差? 的全部内容, 来源链接: utcz.com/z/350364.html