在 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
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP