在 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
广告