如何在R資料框中按行求所有列的和?


要按行求所有列的和,可以使用`rowSums`函式。

例如,如果我們有一個名為`df`的資料框,包含五列,例如x、y、z、a和b,並且我們想按行對所有這些列求和,那麼可以使用以下命令:

df$Total_sum<-rowSums(df[,c("x","y","z","a","b")])

示例1

以下程式碼片段建立一個示例資料框:

x1<-rnorm(20)
x2<-rnorm(20)
x3<-rnorm(20)
df1<-data.frame(x1,x2,x3)
df1

建立以下資料框:

       x1          x2           x3
1  -0.71576837   1.93636693   0.03572217
2   0.10588952  -0.18761810  -0.51570157
3   0.71766454  -0.48477796  -0.45083675
4  -0.51649822  -0.04961815  -0.50535820
5  -0.14545158   0.40937268   1.46923050
6   0.89138166  -2.27465679   0.07499376
7  -0.33328696   0.29308439  -1.69285367
8   0.23366842   0.23843342   0.81551733
9  -0.39147373  -0.91625212   0.34213384
10  0.02346723  -0.18371169   1.34624911
11 -0.88525152  -1.58919170  -1.79642822
12 -0.58824620   1.01577620   0.97343742
13 -0.11139240   0.34465454  -0.57030662
14  0.01699374   1.36414048   1.12037818
15  1.02739093   0.43833995   0.35741454
16 -0.05210225   -0.89179920 -0.53029706
17  0.11993986  -0.93023225   1.58035136
18  0.88157577  -0.68255508  -0.23090706
19  1.72864721   0.61535225   1.11270514
20  1.09912321   0.47399401  -0.22800965

要按行計算`df1`所有列的和,請將以下程式碼新增到上面的程式碼片段中:

x1<-rnorm(20)
x2<-rnorm(20)
x3<-rnorm(20)
df1<-data.frame(x1,x2,x3)
df1$Total<-rowSums(df1[,c("x1","x2","x3")])
df1

輸出

如果您將以上所有程式碼片段作為一個程式執行,則會生成以下輸出:

        x1           x2          x3         Total
1  -0.71576837   1.93636693   0.03572217   1.25632074
2   0.10588952  -0.18761810  -0.51570157  -0.59743015
3   0.71766454  -0.48477796  -0.45083675  -0.21795017
4  -0.51649822  -0.04961815  -0.50535820  -1.07147457
5  -0.14545158  0.40937268    1.46923050   1.73315160
6   0.89138166  -2.27465679   0.07499376  -1.30828137
7  -0.33328696   0.29308439  -1.69285367  -1.73305624
8   0.23366842   0.23843342   0.81551733   1.28761916
9  -0.39147373  -0.91625212   0.34213384  -0.96559201
10  0.02346723  -0.18371169   1.34624911   1.18600466
11 -0.88525152  -1.58919170  -1.79642822  -4.27087145
12 -0.58824620   1.01577620   0.97343742   1.40096742
13 -0.11139240   0.34465454  -0.57030662  -0.33704449
14  0.01699374   1.36414048   1.12037818   2.50151240
15  1.02739093   0.43833995   0.35741454   1.82314543
16 -0.05210225  -0.89179920  -0.53029706  -1.47419851
17  0.11993986  -0.93023225   1.58035136   0.77005896
18  0.88157577  -0.68255508  -0.23090706  -0.03188636
19  1.72864721   0.61535225   1.11270514   3.45670459
20  1.09912321   0.47399401  -0.22800965   1.34510757

示例2

以下程式碼片段建立一個示例資料框:

y1<-rpois(20,1)
y2<-rpois(20,1)
y3<-rpois(20,1)
y4<-rpois(20,1)
df2<-data.frame(y1,y2,y3,y4)
df2

建立以下資料框:

   y1 y2 y3 y4
1  2  0  1  0
2  0  2  2  1
3  1  1  0  1
4  1  1  1  0
5  0  1  0  0
6  2  1  3  5
7  0  2  0  0
8  0  3  0  2
9  0  0  1  1
10 2  0  1  2
11 1  1  1  3
12 0  1  1  1
13 0  0  1  1
14 1  0  2  1
15 0  1  0  3
16 0  0  0  0
17 1  2  2  1
18 1  2  1  1
19 1  1  1  2
20 1  1  0  1

要按行計算`df2`所有列的和,請將以下程式碼新增到上面的程式碼片段中:

y1<-rpois(20,1)
y2<-rpois(20,1)
y3<-rpois(20,1)
y4<-rpois(20,1)
df2<-data.frame(y1,y2,y3,y4)
df2$Total_Sum<-rowSums(df2[,c("y1","y2","y3","y4")])
df2

輸出

如果您將以上所有程式碼片段作為一個程式執行,則會生成以下輸出:

   y1 y2 y3 y4 Total_Sum
1  2  0  1  0   3
2  0  2  2  1   5
3  1  1  0  1   3
4  1  1  1  0   3
5  0  1  0  0   1
6  2  1  3  5  11
7  0  2  0  0   2
8  0  3  0  2   5
9  0  0  1  1   2
10 2  0  1  2   5
11 1  1  1  3   6
12 0  1  1  1   3
13 0  0  1  1   2
14 1  0  2  1   4
15 0  1  0  3   4
16 0  0  0  0   0
17 1  2  2  1   6
18 1  2  1  1   5
19 1  1  1  2   5
20 1  1  0  1   3

更新於:2021年11月12日

瀏覽量:153

啟動您的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.