如果数据框具有所有数字列,那么我们可能有兴趣查找该数据框中所有值的均值,但是由于数据框对象不是数字,因此无法直接完成此操作。因此,要查找R数据帧中所有值的均值,我们需要先将其转换为矩阵,然后使用均值函数。
请看以下数据帧-
x1<-rnorm(20,0.5) x2<-rpois(20,2) x3<-rpois(20,5) x4<-rpois(20,10) x5<-rnorm(20,2) df1<-data.frame(x1,x2,x3,x4,x5) df1
输出结果
x1 x2 x3 x4 x5 1 0.26964555 1 3 5 1.016116 2 0.42291565 1 2 11 3.128720 3 0.65188853 2 8 13 2.084747 4 1.36720540 0 8 4 1.796721 5 0.71275824 0 4 12 3.689740 6 0.40522303 3 5 12 3.479856 7 1.24929901 0 6 6 1.819096 8 0.16090460 5 7 11 2.097494 9 1.59639183 3 3 10 1.975716 10 0.58234446 4 3 11 3.249315 11 0.32498206 2 5 6 1.574391 12 1.86227329 3 7 11 1.364608 13 0.57444839 3 4 7 2.587213 14 1.71832408 0 4 8 2.623389 15 0.06276699 2 5 9 2.931708 16 -0.21100119 1 10 13 2.975824 17 1.85209226 1 4 13 2.616432 18 0.25671284 1 5 11 2.480839 19 -0.52819876 1 5 11 3.080255 20 -0.19347216 1 5 8 1.556553
使用均值函数查找均值-
mean(df1)
输出结果
[1] NA
警告消息-
在mean.default(df1)中-参数不是数字或逻辑-返回NA
在这里,它显示警告消息,因此,我们需要将数据帧转换为矩阵以进行均值计算-
mean(as.matrix(df1))
输出结果
[1] 3.902662
让我们看另一个例子-
y1<-runif(20,1,2) y2<-runif(20,2,3) y3<-runif(20,2,4) y4<-runif(20,2,5) y5<-runif(20,2,10) y6<-runif(20,5,10) df2<-data.frame(y1,y2,y3,y4,y5,y6) df2
输出结果
y1 y2 y3 y4 y5 y6 1 1.368129 2.738308 3.161148 4.046335 6.779294 6.587224 2 1.476344 2.916177 3.772860 3.781855 4.180840 5.689949 3 1.048968 2.557214 2.616399 4.544586 5.332783 7.590678 4 1.237608 2.886140 3.566979 2.233891 7.110491 5.400549 5 1.052892 2.085286 3.929607 3.001106 8.221596 8.019978 6 1.978942 2.558619 3.558014 2.275578 6.169379 9.002451 7 1.800132 2.692973 2.329893 4.700417 9.436470 5.828630 8 1.362224 2.647957 2.361931 4.209640 9.838114 8.874549 9 1.379799 2.521889 3.516044 4.751619 6.102215 7.123205 10 1.682376 2.854172 2.507239 2.605997 7.708206 7.139015 11 1.652283 2.546204 3.005126 2.188606 3.573105 7.826812 12 1.839336 2.663233 2.644623 3.820956 9.414881 8.410358 13 1.027927 2.741457 3.997138 2.454044 9.394880 7.838431 14 1.539522 2.790478 2.751248 2.446984 9.048925 5.909314 15 1.112645 2.582921 2.028874 4.003921 5.382478 6.043791 16 1.038845 2.819239 3.011070 2.966783 8.145579 7.155915 17 1.140283 2.600742 3.867859 2.332695 7.513786 7.659354 18 1.641807 2.601332 3.274624 4.081097 9.738734 5.018204 19 1.790096 2.839944 3.250313 3.507385 7.654682 7.040064 20 1.377599 2.105186 2.383566 2.610954 2.762618 7.352752
mean(as.matrix(df2))
输出结果
[1] 4.120138