如何逐行添加 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