如何找到R数据帧中每行NA值的频率?

由于列表示变量,因此我们经常会在数据框的列中找到缺失值,但我们可能还希望找到案例的缺失值(NA),以便我们可以根据案例特征而不是变量的分布来替换它们。在R中,我们可以将rowSums与apply函数一起使用。

示例

请看以下数据帧-

set.seed(8)

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

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

df1<-data.frame(x1,x2)

df1

输出结果

  x1 x2

1  2 10

2  1 10

3  2 5

4  2 10

5  1 5

6  2 NA

7  1 5

8 NA 10

9 NA 10

10 1 5

11 2 NA

12 2 5

13 1 NA

14 1 5

15 2 5

16 1 NA

17 NA 5

18 NA 10

19 1 5

20 2 5

在数据帧df1的行中找到NA值的频率-

示例

df1$NA_frequency<-rowSums(apply(is.na(df1),2,as.numeric))

df1

输出结果

  x1 x2 NA_frequency

1  2 10    0

2  1 10    0

3  2 5     0

4  2 10    0

5  1 5     0

6  2 NA    1

7  1 5     0

8 NA 10    1

9 NA 10    1

10 1 5     0

11 2 NA    1

12 2 5     0

13 1 NA    1

14 1 5     0

15 2 5     0

16 1 NA    1

17 NA 5    1

18 NA 10   1

19 1 5     0

20 2 5     0

让我们看另一个例子-

示例

y1<-sample(c(NA,1),20,replace=TRUE)

y2<-sample(c(NA,400),20,replace=TRUE)

y3<-sample(c(NA,35),20,replace=TRUE)

y4<-sample(c(NA,127),20,replace=TRUE)

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

df2

输出结果

  y1  y2 y3 y4

1  NA NA 35 127

2  1  NA NA NA

3  1 400 35 127

4  1 NA 35 127

5  1 NA 35 127

6 NA 400 NA NA

7  1 400 NA NA

8  1 NA 35 127

9  1 400 NA 127

10 NA 400 35 127

11 NA NA 35 NA

12 NA NA NA NA

13 NA NA 35 NA

14 1 400 35 NA

15 1 NA 35 NA

16 NA 400 35 NA

17 1 NA 35 NA

18 NA 400 35 127

19 NA 400 NA NA

20 1 NA NA 127

在数据帧df2的行中找到NA值的频率-

示例

df2$NA_frequency<-rowSums(apply(is.na(df2),2,as.numeric))

df2

输出结果

  y1 y2 y3 y4 NA_frequency

1 NA NA 35 127    2

2  1 NA NA NA     3

3  1 400 35 127   0

4  1 NA 35 127    1

5  1 NA 35 127    1

6 NA 400 NA NA    3

7  1 400 NA NA    2

8  1 NA 35 127    1

9  1 400 NA 127   1

10 NA 400 35 127  1

11 NA NA 35 NA    3

12 NA NA NA NA    4

13 NA NA 35 NA    3

14 1 400 35 NA    1

15 1 NA 35 NA     2

16 NA 400 35 NA   2

17 1  NA 35 NA    2

18 NA 400 35 127  1

19 NA 400 NA NA   3

20 1 NA NA 127    2

以上是 如何找到R数据帧中每行NA值的频率? 的全部内容, 来源链接: utcz.com/z/334820.html

回到顶部