如果 NA 存在于 R 数据框中,如何找到行总和?

如果 R 数据框中存在 NA,要查找行总和,我们可以使用 rowSums 函数并将na.rm参数设置为 TRUE,此参数将在计算行总和之前删除 NA 值。

例如,如果我们有一个名为 df 的数据框,其中包含一些 NA 值,那么我们可以使用以下命令找到行总和 -

df$Row_Sums<-rowSums(df,na.rm=TRUE)

示例 1

以下代码段创建了一个示例数据框 -

x1<-sample(c(NA,2,5),20,replace=TRUE)

x2<-sample(c(NA,2,5),20,replace=TRUE)

x3<-sample(c(NA,2,5),20,replace=TRUE)

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

df1

创建了以下数据框

   x1 x2 x3

1   2 NA  5

2  NA  2  2

3   2  5 NA

4  NA  5  2

5  NA NA  2

6   5 NA NA

7   5  2  5

8   2 NA NA

9   2 NA  2

10  5  5  5

11 NA  5  2

12 NA NA NA

13  5  2  5

14  2  2  2

15 NA NA  2

16  5  2 NA

17  5 NA  5

18 NA NA  2

19 NA NA NA

20  5  5 NA

要通过忽略上面创建的数据框中的 NA 值来查找 df1 中每一行的行总和,请将以下代码添加到上面的代码段中 -

x1<-sample(c(NA,2,5),20,replace=TRUE)

x2<-sample(c(NA,2,5),20,replace=TRUE)

x3<-sample(c(NA,2,5),20,replace=TRUE)

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

df1$Row_Sums<-rowSums(df1,na.rm=TRUE)

df1

输出结果

如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -

  x1  x2 x3 Row_Sums

1  2  NA  5   7

2 NA   2  2   4

3  2   5 NA   7

4 NA   5  2   7

5 NA  NA  2   2

6  5  NA NA   5

7  5   2  5  12

8  2  NA NA   2

9  2  NA  2   4

10 5   5  5  15

11 NA  5  2   7

12 NA NA NA   0

13  5  2  5  12

14  2  2  2   6

15 NA NA  2   2

16  5  2 NA   7

17  5 NA  5  10

18 NA NA  2   2

19 NA NA NA   0

20  5  5 NA  10

示例 2

以下代码段创建了一个示例数据框 -

y1<-sample(c(NA,round(rnorm(3),2)),20,replace=TRUE)

y2<-sample(c(NA,round(rnorm(3),2)),20,replace=TRUE)

y3<-sample(c(NA,round(rnorm(3),2)),20,replace=TRUE)

df2<-data.frame(y1,y2,y3)

df2

创建了以下数据框

      y1    y2    y3

1  -0.27    NA    NA

2  -0.27    NA -0.70

3  -0.33    NA -0.06

4  -0.27 -1.35 -0.09

5   0.23 -2.03 -0.09

6     NA -2.03 -0.70

7  -0.27    NA    NA

8  -0.27 -2.03 -0.09

9  -0.27    NA -0.06

10 -0.33    NA -0.70

11 -0.27    NA -0.70

12    NA    NA    NA

13 -0.33    NA    NA

14    NA -1.35 -0.70

15    NA -0.93 -0.06

16  0.23 -1.35 -0.06

17  0.23 -0.93 -0.06

18 -0.27 -0.93 -0.06

19 -0.33    NA -0.06

20    NA -0.93 -0.09

要通过忽略上面创建的数据框中的 NA 值来查找 df2 中每一行的行总和,请将以下代码添加到上面的代码段中 -

y1<-sample(c(NA,round(rnorm(3),2)),20,replace=TRUE)

y2<-sample(c(NA,round(rnorm(3),2)),20,replace=TRUE)

y3<-sample(c(NA,round(rnorm(3),2)),20,replace=TRUE)

df2<-data.frame(y1,y2,y3)

df2$Row_Sums<-rowSums(df2,na.rm=TRUE)

df2

输出结果

如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -

        y1    y2    y3 Row_Sums

1    -0.27    NA    NA -0.27

2    -0.27    NA -0.70 -0.97

3    -0.33    NA -0.06 -0.39

4    -0.27 -1.35 -0.09 -1.71

5     0.23 -2.03 -0.09 -1.89

6       NA -2.03 -0.70 -2.73

7    -0.27    NA    NA -0.27

8    -0.27 -2.03 -0.09 -2.39

9    -0.27    NA -0.06 -0.33

10   -0.33    NA -0.70 -1.03

11   -0.27    NA -0.70 -0.97

12      NA    NA    NA  0.00

13   -0.33    NA    NA -0.33

14      NA -1.35 -0.70 -2.05

15      NA -0.93 -0.06 -0.99

16    0.23 -1.35 -0.06 -1.18

17    0.23 -0.93 -0.06 -0.76

18   -0.27 -0.93 -0.06 -1.26

19   -0.33    NA -0.06 -0.39

20      NA -0.93 -0.09 -1.02

以上是 如果 NA 存在于 R 数据框中,如何找到行总和? 的全部内容, 来源链接: utcz.com/z/354379.html

回到顶部