如何在R数据框中查找选定列的每行平均值?
为了在R数据框中查找选定列的每行平均值,我们可以使用dplyr包的mutate函数和rowMeans函数。
例如,如果我们有一个名为df的数据框,其中包含三个列,例如X、Y和Z,那么可以使用以下命令找到列X和Y的每行的平均值:
df %% mutate(X_Y_Mean=select(.,c("X","Y")) %% rowMeans())
示例1
以下代码片段创建一个示例数据框:
x1<-rpois(20,1) x2<-rpois(20,2) x3<-rpois(20,2) x4<-rpois(20,5) df1<-data.frame(x1,x2,x3,x4) df1
创建了以下数据框
x1 x2 x3 x4 1 1 1 0 2 2 2 1 4 7 3 1 0 3 4 4 2 2 3 2 5 2 1 1 5 6 0 3 1 5 7 0 2 6 5 8 0 3 5 7 9 1 2 2 4 10 3 1 3 7 11 1 1 1 4 12 3 2 0 7 13 0 2 1 3 14 1 5 3 3 15 1 2 0 4 16 0 3 1 6 17 0 2 3 4 18 3 0 1 3 19 0 3 3 1 20 2 2 2 1
要加载dplyr包并在上面创建的数据框上查找列x1和x2的每行平均值,请将以下代码添加到上面的代码片段中:
x1<-rpois(20,1) x2<-rpois(20,2) x3<-rpois(20,2) x4<-rpois(20,5) df1<-data.frame(x1,x2,x3,x4) library(dplyr) df1 %% mutate(X1_X2_Mean=select(.,c("x1","x2")) %% rowMeans())
输出
如果将上面给出的所有代码片段作为一个程序执行,则会生成以下输出:
x1 x2 x3 x4 X1_X2_Mean 1 1 1 0 2 1.0 2 2 1 4 7 1.5 3 1 0 3 4 0.5 4 2 2 3 2 2.0 5 2 1 1 5 1.5 6 0 3 1 5 1.5 7 0 2 6 5 1.0 8 0 3 5 7 1.5 9 1 2 2 4 1.5 10 3 1 3 7 2.0 11 1 1 1 4 1.0 12 3 2 0 7 2.5 13 0 2 1 3 1.0 14 1 5 3 3 3.0 15 1 2 0 4 1.5 16 0 3 1 6 1.5 17 0 2 3 4 1.0 18 3 0 1 3 1.5 19 0 3 3 1 1.5 20 2 2 2 1 2.0
示例2
以下代码片段创建一个示例数据框:
y1<-round(rnorm(20),2) y2<-round(rnorm(20),2) y3<-round(rnorm(20),2) df2<-data.frame(y1,y2,y3) df2
创建了以下数据框
y1 y2 y3 1 -1.77 0.25 -0.85 2 0.38 -0.53 0.01 3 -0.87 0.56 0.06 4 0.37 1.55 0.44 5 -0.01 0.29 -0.35 6 -1.22 -0.40 1.55 7 -0.51 -0.28 -0.04 8 0.24 1.85 0.60 9 0.50 0.50 -0.38 10 0.97 1.06 1.98 11 0.88 -0.83 -1.00 12 -1.31 0.56 -1.06 13 0.41 -0.28 1.57 14 -1.66 -1.30 0.56 15 -2.15 -0.47 0.84 16 -0.27 -2.58 -0.44 17 -2.45 0.90 -2.49 18 -1.82 -1.39 -0.31 19 0.15 0.19 -0.70 20 1.00 0.97 0.05
要在上面创建的数据框上查找列y2和y3的每行平均值,请将以下代码添加到上面的代码片段中:
y1<-round(rnorm(20),2) y2<-round(rnorm(20),2) y3<-round(rnorm(20),2) df2<-data.frame(y1,y2,y3) df2 %% mutate(y2_y3_Mean=select(.,c("y2","y3")) %% rowMeans())
输出
如果将上面给出的所有代码片段作为一个程序执行,则会生成以下输出:
y1 y2 y3 y2_y3_Mean 1 -1.77 0.25 -0.85 -0.300 2 0.38 -0.53 0.01 -0.260 3 -0.87 0.56 0.06 0.310 4 0.37 1.55 0.44 0.995 5 -0.01 0.29 -0.35 -0.030 6 -1.22 -0.40 1.55 0.575 7 -0.51 -0.28 -0.04 -0.160 8 0.24 1.85 0.60 1.225 9 0.50 0.50 -0.38 0.060 10 0.97 1.06 1.98 1.520 11 0.88 -0.83 -1.00 -0.915 12 -1.31 0.56 -1.06 -0.250 13 0.41 -0.28 1.57 0.645 14 -1.66 -1.30 0.56 -0.370 15 -2.15 -0.47 0.84 0.185 16 -0.27 -2.58 -0.44 -1.510 17 -2.45 0.90 -2.49 -0.795 18 -1.82 -1.39 -0.31 -0.850 19 0.15 0.19 -0.70 -0.255 20 1.00 0.97 0.05 0.510
广告