Em um dataframe, quando substituo NA por 0 usando obt[is.na(obt)] <- 0
, o tipo de coluna muda de inteiro para numérico.
str(obt)
...
$ Units: int NA NA 2 1 NA NA NA 1 NA NA ...
obt[is.na(obt)] <- 0
str(obt)
...
$ Units: num 0 0 2 1 0 0 0 1 0 0 ...
Como posso evitar isso?
Dados de amostra:
obt <- structure(list(Date = structure(c(19677, 19678, 19679, 19680,
19681, 19682, 19683, 19684, 19685, 19686), class = "Date"), Title = structure(c(NA,
NA, 3L, 3L, NA, NA, NA, 3L, NA, NA), levels = c("A", "D", "L",
"C"), class = "factor"), Units = c(NA, NA, 2L, 1L, NA, NA, NA,
1L, NA, NA)), row.names = c(NA, 10L), class = "data.frame")
Usar
L
para indicar que o número é um número inteiro (o mesmo que usaras.integer(0)
).Outro exemplo, ao usar
dput
Aqui está outra maneira de lidar com o problema: