如何用R数据帧列中的中值替换缺失值?

要用中位数替换缺失值,我们可以使用与用均值替换缺失值相同的技巧。例如,如果我们有一个包含x和y列的数据帧df,其中两列都包含一些缺失值,则可以用df $x [is.na(df $x)] <- x和y的中位数(df $x,na.rm = TRUE)我们可以做与df $y [is.na(df $y)] <-median(df $y,na.rm = TRUE)相同的操作。

示例

请看以下数据帧-

set.seed(1112)

x1<-LETTERS[1:20]

x2<-sample(c(NA,rpois(19,8)),20,replace=TRUE)

df1<-data.frame(x1,x2)

df1

输出结果

 x1 x2

1 A 10

2 B 11

3 C 8

4 D 6

5 E 6

6 F NA

7 G 10

8 H 8

9 I 8

10 J 7

11 K NA

12 L 12

13 M 7

14 N 6

15 O 10

16 P 7

17 Q 7

18 R 8

19 S 11

20 T 4

median(df1$x2)

[1] 8

用剩余值的中位数替换x2中的缺失值-

df1$x2[is.na(df1$x2)]<-median(df1$x2,na.rm=TRUE)

df1

输出结果

x1 x2

1 A 10

2 B 11

3 C 8

4 D 6

5 E 6

6 F 8

7 G 10

8 H 8

9 I 8

10 J 7

11 K 8

12 L 12

13 M 7

14 N 6

15 O 10

16 P 7

17 Q 7

18 R 8

19 S 11

20 T 4

让我们看另一个例子-

示例

ID <-1:20评分<-sample(c(NA,1,2,3,4,5),20,replace = TRUE)df2 <-data.frame(ID,Ratings)df2

输出结果

ID Ratings

1 1 3

2 2 1

3 3 1

4 4 4

5 5 1

6 6 4

7 7 2

8 8 3

9 9 2

10 10 2

11 11 3

12 12 5

13 13 5

14 14 1

15 15 4

16 16 1

17 17 4

18 18 NA

19 19 1

20 20 NA

median(df2$Ratings,na.rm=TRUE)

[1] 2.5

用剩余值的中位数替换评级中的缺失值-

示例

df2$Ratings[is.na(df2$Ratings)]<-median(df2$Ratings,na.rm=TRUE)

df2

输出结果

ID Ratings

1 1 3.0

2 2 1.0

3 3 1.0

4 4 4.0

5 5 1.0

6 6 4.0

7 7 2.0

8 8 3.0

9 9 2.0

10 10 2.0

11 11 3.0

12 12 5.0

13 13 5.0

14 14 1.0

15 15 4.0

16 16 1.0

17 17 4.0

18 18 2.5

19 19 1.0

20 20 2.5

以上是 如何用R数据帧列中的中值替换缺失值? 的全部内容, 来源链接: utcz.com/z/330919.html

回到顶部