Функция для изменения Null на NA

Я пытаюсь написать функцию, которая превращает нулевые значения в NA. Резюме одного из моих столбцов выглядит так:

      a   b 
 12 210 468 

Я хотел бы изменить 12 пустых значений на NA. У меня также есть несколько других столбцов факторов, для которых я хотел бы изменить значения Null на NA, поэтому я кое-что позаимствовал здесь и там, чтобы придумать это:

# change nulls to NAs
nullToNA <- function(df){

  # split df into numeric & non-numeric functions
  a<-df[,sapply(df, is.numeric), drop = FALSE]
  b<-df[,sapply(df, Negate(is.numeric)), drop = FALSE]

  # Change empty strings to NA
  b<-b[lapply(b,function(x) levels(x) <- c(levels(x), NA) ),] # add NA level
  b<-b[lapply(b,function(x) x[x=="",]<- NA),]                 # change Null to NA

  # Put the columns back together
  d<-cbind(a,b)
  d[, names(df)]
}

Тем не менее, я получаю эту ошибку:

> foo<-nullToNA(bar)  
Error in x[x == "", ] <- NA : incorrect number of subscripts on matrix  
Called from: FUN(X[[i]], ...)

Я попробовал ответ, найденный здесь:Заменить все 0 значений на NA но он меняет все мои столбцы на числовые значения.

Ответы на вопрос(2)

Ваш ответ на вопрос