在 R 数据框中查找以字符串开头的列的行均值。
要在R数据框中查找以特定字符串开头的列的行均值,我们可以使用dplyr包的mutate函数和rowMeans函数。
例如,如果我们有一个名为df的数据框,其中包含三列,比如x1_x2、x1_x3、x1_x2,并且我们想找到x1_x2和x1_x3列的行均值,我们可以使用以下命令-
df%%mutate(X1_Cmbn=select(.,starts_with("x1_")) %% rowMeans())
示例1
以下代码段创建了一个示例数据框-
Grp1_x<-rpois(20,2) Grp1_y<-rpois(20,5) Grp2_y<-rpois(20,5) Grp2_x<-rpois(20,2) df1<-data.frame(Grp1_x,Grp1_y,Grp2_y,Grp2_x) df1
创建了以下数据框
Grp1_x Grp1_y Grp2_y Grp2_x 1 1 5 4 4 2 1 3 4 2 3 0 4 7 2 4 2 4 2 1 5 1 3 7 3 6 3 5 4 2 7 4 10 6 3 8 5 5 4 2 9 2 2 5 1 10 7 2 3 4 11 1 3 4 3 12 1 5 4 1 13 2 11 7 6 14 3 8 4 1 15 2 7 5 2 16 2 1 3 1 17 3 3 8 2 18 1 2 4 3 19 1 5 7 2 20 0 4 1 2
要加载dplyr包并在上面创建的数据框中的列名中找到具有Grp1_的列的行均值,请将以下代码添加到上面的代码片段中-
Grp1_x<-rpois(20,2) Grp1_y<-rpois(20,5) Grp2_y<-rpois(20,5) Grp2_x<-rpois(20,2) df1<-data.frame(Grp1_x,Grp1_y,Grp2_y,Grp2_x) library(dplyr) df1%%mutate(Group_1=select(.,starts_with("Grp1_")) %% rowMeans())输出结果
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出-
Grp1_x Grp1_y Grp2_y Grp2_x Group_1 1 1 5 4 4 3.0 2 1 3 4 2 2.0 3 0 4 7 2 2.0 4 2 4 2 1 3.0 5 1 3 7 3 2.0 6 3 5 4 2 4.0 7 4 10 6 3 7.0 8 5 5 4 2 5.0 9 2 2 5 1 2.0 10 7 2 3 4 4.5 11 1 3 4 3 2.0 12 1 5 4 1 3.0 13 2 11 7 6 6.5 14 3 8 4 1 5.5 15 2 7 5 2 4.5 16 2 1 3 1 1.5 17 3 3 8 2 3.0 18 1 2 4 3 1.5 19 1 5 7 2 3.0 20 0 4 1 2 2.0
示例2
以下代码段创建了一个示例数据框-
MaleHeight<-sample(150:180,20) MaleWeight<-sample(50:80,20) FemaleHeight<-sample(150:180,20) FemaleWeight<-sample(50:80,20) df2<-data.frame(MaleHeight,MaleWeight,FemaleHeight,FemaleWeight) df2
创建了以下数据框
MaleHeight MaleWeight FemaleHeight FemaleWeight 1 178 61 177 51 2 172 60 169 73 3 174 57 173 53 4 152 62 180 50 5 169 68 168 54 6 177 56 153 68 7 154 69 150 56 8 155 71 175 75 9 160 73 171 60 10 150 50 165 64 11 151 75 156 72 12 168 79 174 78 13 173 64 179 62 14 170 65 178 70 15 161 55 152 65 16 171 67 166 67 17 157 53 158 59 18 153 58 159 55 19 163 72 151 63 20 167 76 170 80
要在上面创建的数据框中的列名中找到具有Male的列的行均值,请将以下代码添加到上面的代码段中-
MaleHeight<-sample(150:180,20) MaleWeight<-sample(50:80,20) FemaleHeight<-sample(150:180,20) FemaleWeight<-sample(50:80,20) df2<-data.frame(MaleHeight,MaleWeight,FemaleHeight,FemaleWeight) df2%%mutate(Males=select(.,starts_with("Male")) %% rowMeans())输出结果
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出-
MaleHeight MaleWeight FemaleHeight FemaleWeight Males 1 178 61 177 51 119.5 2 172 60 169 73 116.0 3 174 57 173 53 115.5 4 152 62 180 50 107.0 5 169 68 168 54 118.5 6 177 56 153 68 116.5 7 154 69 150 56 111.5 8 155 71 175 75 113.0 9 160 73 171 60 116.5 10 150 50 165 64 100.0 11 151 75 156 72 113.0 12 168 79 174 78 123.5 13 173 64 179 62 118.5 14 170 65 178 70 117.5 15 161 55 152 65 108.0 16 171 67 166 67 119.0 17 157 53 158 59 105.0 18 153 58 159 55 105.5 19 163 72 151 63 117.5 20 167 76 170 80 121.5