Не используйте gsub()
или другие функции reg.exp - NA
уже идентифицируется , поэтому используйте is.na()
.
Пример
R> a<-c(NA,1:5,NA,NA,1:3, rep(NA,round(runif(1,0,100))))
R> a
[1] NA 1 2 3 4 5 NA NA 1 2 3 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[30] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
R> a[is.na(a)] <- 42
R> a
[1] 42 1 2 3 4 5 42 42 1 2 3 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
[30] 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
R>
Здесь мы просто индексируем вектор a
по is.na(a)
и, чтобы упростить его, просто присваиваем этим значениям новое значение.
Короче говоря, не путайте «текст» NA
, отображаемый при печати фактического значения NA
, с условием NA
.