如何在R数据帧中将NaN值转换为NA?

要将NaN值转换为NA,我们需要检测数据帧中的NaN值并将其设置为NA。例如,如果我们有一个名为df的数据框,其中包含具有某些NaN值的x列,则可以使用命令df $x [is.nan(df $x)] <-NA将那些NaN转换为NA

例1

考虑以下数据帧-

> x1<-sample(c(1,NaN),20,replace=TRUE)

> x2<-rnorm(20)

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

> df1

输出结果
x1 x2

1 NaN -0.44923302

2 NaN -0.12670027

3 1 0.59120380

4 1 -0.18782341

5 NaN -0.28730385

6 1 0.57412261

7 NaN -0.33620181

8 1 1.37168545

9 NaN -2.24121448

10 NaN 1.05990104

11 1 1.95544957

12 NaN -2.19544854

13 1 -0.94131203

14 1 -0.37307028

15 NaN 1.21659101

16 1 -0.03788952

17 1 -0.16122552

18 1 0.90254474

19 1 -0.73196835

20 NaN -0.28462669

将x1中的NaN转换为NA-

> df1$x1[is.nan(df1$x1)]<-NA

> df1

输出结果
x1 x2

1 NA -0.44923302

2 NA -0.12670027

3 1 0.59120380

4 1 -0.18782341

5 NA -0.28730385

6 1 0.57412261

7 NA -0.33620181

8 1 1.37168545

9 NA -2.24121448

10 NA 1.05990104

11 1 1.95544957

12 NA -2.19544854

13 1 -0.94131203

14 1 -0.37307028

15 NA 1.21659101

16 1 -0.03788952

17 1 -0.16122552

18 1 0.90254474

19 1 -0.73196835

20 NA -0.28462669

例2

> y1<-sample(c(5,NaN),20,replace=TRUE)

> y2<-rpois(20,5)

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

> df2

输出结果
y1 y2

1 NaN 7

2 NaN 5

3 NaN 3

4 5 4

5 5 4

6 5 4

7 5 4

8 NaN 4

9 5 5

10 NaN 5

11 5 5

12 5 2

13 5 9

14 5 3

15 NaN 6

16 NaN 8

17 5 5

18 5 7

19 NaN 4

20 NaN 8

将y1中的NaN转换为NA-

> df2$y1[is.nan(df2$y1)]<-NA

> df2

输出结果
y1 y2

1 NA 7

2 NA 5

3 NA 3

4 5 4

5 5 4

6 5 4

7 5 4

8 NA 4

9 5 5

10 NA 5

11 5 5

12 5 2

13 5 9

14 5 3

15 NA 6

16 NA 8

17 5 5

18 5 7

19 NA 4

20 NA 8

以上是 如何在R数据帧中将NaN值转换为NA? 的全部内容, 来源链接: utcz.com/z/361655.html

回到顶部