Funktion zum Ändern von Null auf NA

Ich versuche eine Funktion zu schreiben, die Nullwerte in NA umwandelt. Eine Zusammenfassung einer meiner Kolumnen sieht folgendermaßen aus:

      a   b 
 12 210 468 

Ich möchte die 12 leeren Werte in NA ändern. Ich habe auch ein paar andere Faktorspalten, für die ich Nullwerte in NA ändern möchte, also habe ich hier und da ein paar Sachen ausgeliehen, um mir das auszudenken:

# 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)]
}

Ich erhalte jedoch den folgenden Fehler:

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

Ich habe die hier gefundene Antwort ausprobiert: Alle 0 Werte auf NA @ setz aber es ändert alle meine Spalten in numerische Werte.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage