Функция для изменения 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 но он меняет все мои столбцы на числовые значения.