如何找到 R 数据框中所有列的中位数?
r programmingserver side programmingprogramming更新于 2025/4/12 12:52:17
中位数是将数据分成两个相等部分的向量中的值。要找到所有列的中位数,我们可以使用 apply 函数。例如,如果我们有一个包含数值列的数据框 df,那么所有列的中位数可以计算为 apply(df,2,median)。
示例
考虑下面的数据框 −
set.seed(7) x1<-rnorm(20,5,1) x2<-rnorm(20,100,5) x3<-rnorm(20,100,2) x4<-rnorm(20,25,3) x5<-rnorm(20,30,4) df1<-data.frame(x1,x2,x3,x4,x5) df1
输出
x1 x2 x3 x4 x5 1 7.287247 104.19875 102.43710 25.22911 31.37034 2 3.803228 103.52671 98.60137 25.47747 30.01699 3 4.305707 106.52982 99.42913 26.63102 30.11688 4 4.587707 93.06002 97.37689 27.11442 28.42631 5 4.029327 106.36458 99.21798 25.95691 26.82918 6 4.052720 100.92096 99.19695 28.32775 28.75319 7 5.748139 103.76140 102.70104 27.30746 28.61573 8 4.883045 102.95873 101.18238 28.46042 28.78157 9 5.152658 95.08474 100.20105 28.78205 22.85643 10 7.189978 98.61968 101.86214 27.10187 32.34910 11 5.356986 95.64574 99.47452 26.29788 36.54318 12 7.716752 103.59355 99.98466 22.23219 27.41831 13 7.281452 100.55326 100.73431 23.15325 32.47597 14 5.324021 99.60767 103.41433 22.40002 30.94557 15 6.896067 97.89755 101.44748 20.08145 33.38600 16 5.467681 97.18937 100.96207 21.02248 27.70542 17 4.106199 104.98757 96.86426 22.33289 34.47197 18 4.692672 94.47435 100.63650 23.32719 23.84000 19 4.995178 99.28856 100.33198 24.81279 28.24750 20 5.988164 101.57497 98.20018 32.26808 29.39731
查找数据框 df1 中所有列的中位数 −
示例
apply(df1,2,median)
输出
x1 x2 x3 x4 x5 5.238339 100.737114 100.266517 25.717187 29.089439
我们来看另一个例子 −
示例
y1<-sample(1:5,20,replace=TRUE) y2<-sample(1:2,20,replace=TRUE) y3<-sample(1:6,20,replace=TRUE) y4<-sample(1:10,20,replace=TRUE) df2<-data.frame(y1,y2,y3,y4) df2
输出
y1 y2 y3 y4 1 2 2 5 5 2 5 2 3 9 3 2 2 2 10 4 3 2 1 5 5 1 1 1 3 6 1 2 4 3 7 3 1 6 1 8 2 2 5 9 9 2 1 5 1 10 4 2 2 5 11 3 1 6 7 12 5 1 4 9 13 2 2 3 3 14 4 2 1 6 15 2 1 1 7 16 1 2 5 10 17 3 1 4 7 18 2 1 1 6 19 5 2 3 2 20 1 2 6 7
查找数据框 df2 中所有列的中位数 −
示例
apply(df2,2,median)
输出
y1 y2 y3 y4 2.0 2.0 3.5 6.0