【发布时间】:2022-11-12 05:34:25
【问题描述】:
我有一个数据集,其中包含我想更改为 NA 的 NaN 值。我想出了以下解决方案。但是,一个意想不到的副作用是它将作为因子的列更改为整数。为什么会这样?我该如何预防?
library(dplyr)
x <- data.frame(x1 = factor(c("a", "a", "a", "a", "a", "a", "a", "a", "a", "a",
"b", "b", "b", "b", "b", "b", "b", "b", "b", "b")),
x2 = c(seq(1,20,1)),
x3 = c(seq(21,40,1)))
x[12,1] <- NA
x[16,2] <- NA
x[3,3] <- NA
str(x)
'data.frame': 20 obs. of 3 variables:
$ x1: Factor w/ 2 levels "a","b": 1 1 1 1 1 1 1 1 1 1 ...
$ x2: num 1 2 3 4 5 6 7 8 9 10 ...
$ x3: num 21 22 NaN 24 25 26 27 28 29 30 ...
x <- x %>%
mutate(across(.cols = everything(), ~ifelse(is.nan(.), NA, .)))
str(x)
'data.frame': 20 obs. of 3 variables:
$ x1: int 1 1 1 1 1 1 1 1 1 1 ...
$ x2: num 1 2 3 4 5 6 7 8 9 10 ...
$ x3: num 21 22 NA 24 25 26 27 28 29 30 ...
【问题讨论】: