如何通过排除R数据框中的列来查找行总和?

假设我们在 R 数据框中有一个数字列,由于某些特征,例如与其余数据的相似性或区别,我们不想包括我们的分析,那么我们可能希望从分析中排除该列。一种这样的情况是通过排除一列来查找行总和。为此,我们可以使用以下步骤 -

  • 首先,创建一个数据框。

  • 借助 dplyr 包的 mutate 函数和 base R 中的 setdiff 函数查找行总和

创建数据框

让我们创建一个数据框,如下所示 -

例子

x1<-round(rnorm(20),2)

x2<-round(rnorm(20),2)

x3<-round(rnorm(20),2)

df<-data.frame(x1,x2,x3)

df

执行时,上述脚本生成以下内容output(this output will vary on your system due to randomization)-

输出

   x1    x2    x3

1 0.67  0.63 -0.12

2 -0.41 0.36 -1.14

3 0.73  0.85  0.29

4 -3.14 0.16  0.65

5 -0.07 0.76  0.07

6 -0.05 -0.26 -2.03

7 -1.61 0.36  0.88

8 -1.48 -0.90 1.10

9 - 2.27 -2.92 -0.06

10 -0.78 -1.89 -0.10

11 -0.06 -1.30 -1.43

12 -0.15 -0.57 0.40

13 0.31 -0.46 -0.46

14 -0.40 -0.16 -1.06

15 -0.07 -1.62 -0.23

16 0.29  0.00  0.29

17 -0.61 0.53 1.67

18 0.86 -0.54 -1.40

19 0.85 0.17 -0.37

20 0.61 -1.46 0.27

查找行总和

使用 dplyr 包的 mutate 函数通过使用 setdiff 函数排除 x3 列来查找行总和 -

例子

x1<-round(rnorm(20),2)

x2<-round(rnorm(20),2)

x3<-round(rnorm(20),2)

df<-data.frame(x1,x2,x3)

library(dplyr)

df %>% mutate(RowSum=rowSums(.[setdiff(names(.),"x3")]))

输出

   x1    x2    x3  RowSum

1  0.67  0.63 -0.12 1.30

2  -0.41 0.36 -1.14 -0.05

3  0.73  0.85  0.29  1.58

4 -3.14  0.16  0.65 -2.98

5 -0.07  0.76  0.07  0.69

6 -0.05 -0.26 -2.03 -0.31

7 -1.61  0.36  0.88 -1.25

8 -1.48 -0.90  1.10 -2.38

9 -2.27 -2.92 -0.06 -5.19

10 -0.78 -1.89 -0.10 -2.67

11 -0.06 -1.30 -1.43 -1.36

12 -0.15 -0.57 0.40 -0.72

13  0.31  -0.46 -0.46 -0.15

14 -0.40 -0.16 -1.06 -0.56

15 -0.07 -1.62 -0.23 -1.69

16  0.29  0.00  0.29 0.29

17 -0.61  0.53  1.67  -0.08

18  0.86 -0.54 -1.40 0.32

19  0.85 0.17 -0.37 1.02

20  0.61 -1.46 0.27 -0.85

以上是 如何通过排除R数据框中的列来查找行总和? 的全部内容, 来源链接: utcz.com/z/322850.html

回到顶部