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


要将 R 数据帧中的 NaN 转换为 NA,我们可以使用单边方括号将 NaN 值设为 NA 值。首先,我们需要访问包含 NaN 值的列,然后可以利用 is.nan 访问 NaN 值,再如以下示例所示将这些值设为 NA。

请考虑以下数据帧 −

示例

 在线示例

x1<-sample(c(1,2,5,NaN),20,replace=TRUE)
x2<-rpois(20,2)
df1<-data.frame(x1,x2)
df1

输出

   x1  x2
1  5   1
2  1   2
3  5   3
4  NaN 2
5  5   1
6  5   2
7  NaN 1
8  5   4
9  5   2
10 2   0
11 NaN 0
12 1   0
13 NaN 4
14 1   2
15 5   1
16 1   2
17 2   2
18 5   0
19 2   1
20 5   1

替换 df1 中 x1 列的 NaN 值为 NA −

示例

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

输出

   x1 x2
1  5   1
2  1   2
3  5   3
4  NA  2
5  5   1
6  5   2
7  NA  1
8  5   4
9  5   2
10 2   0
11 NA  0
12 1   0
13 NA  4
14 1   2
15 5   1
16 1   2
17 2   2
18 5   0
19 2   1
20 5   1

示例

 在线示例

y1<-sample(c(rnorm(2),NaN),20,replace=TRUE)
y2<-rnorm(20)
y3<-rnorm(20)
df2<-data.frame(y1,y2,y3)
df2

输出

       y1         y2          y3
1  -0.0867355  -1.28729227   -0.20581922
2  NaN          1.11408057    0.56750161
3  NaN          0.47302790   -0.72410253
4  NaN         -0.34217866    0.33855658
5  NaN         -2.52516598    0.78809964
6  -0.0867355  -0.65268724   -0.04150251
7  -0.0867355   0.42845639   -0.12955272
8  -0.0867355   0.71995182    0.24011099
9  -0.0867355   0.07829339    3.10334568
10 -0.9135175   0.07250105   -0.41307585
11 -0.0867355   1.58477752    0.96751855
12 NaN         -1.84389126   -0.42843257
13 -0.0867355  -0.10860452   -0.32978319
14 -0.9135175  -1.25311587   -1.07537515
15 -0.0867355   0.58514141    2.05516953
16 NaN          2.02405825    0.18098639
17 -0.9135175   0.90327161   -0.22561346
18 -0.9135175   0.81260538   -1.98065156
19 NaN         -1.60608848   -1.39970818
20 NaN         -0.82239927   -1.45993348

替换 df2 中 y1 列的 NaN 值为 NA −

示例

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

输出

        y1          y2           y3
1   -0.0867355  -1.28729227   -0.20581922
2  NA            1.11408057    0.56750161
3  NA            0.47302790   -0.72410253
4  NA           -0.34217866    0.33855658
5  NA           -2.52516598    0.78809964
6  -0.0867355   -0.65268724   -0.04150251
7  -0.0867355    0.42845639   -0.12955272
8  -0.0867355    0.71995182    0.24011099
9  -0.0867355    0.07829339    3.10334568
10 -0.9135175    0.07250105   -0.41307585
11 -0.0867355    1.58477752    0.96751855
12 NA           -1.84389126   -0.42843257
13 -0.0867355   -0.10860452   -0.32978319
14 -0.9135175   -1.25311587   -1.07537515
15 -0.0867355    0.58514141    2.05516953
16 NA            2.02405825    0.18098639
17 -0.9135175    0.90327161   -0.22561346
18 -0.9135175    0.81260538   -1.98065156
19 NA           -1.60608848   -1.39970818
20 NA           -0.82239927   -1.45993348

更新日期:10-Feb-2021

10K+ 浏览

启动您的职业

完成课程获得认证

开始
广告