У меня есть data.frame, который содержит несколько факторов, и я хочу переименовать уровни факторов для всех этих факторов. Например:
mydf <- data.frame(col1 = as.factor(c("A","A",NA,NA)),col2 = as.factor(c("A",NA,NA,"A")))
mydf <- as.data.frame(lapply(mydf,addNA))
Обратите внимание, что реальный пример имеет больше, чем просто два столбца. Поэтому я хотел бы использовать применимо к назначьте другие имена уровней для всех этих столбцов, как в примере:
levels(mydf$col1) <- c("1","0")
Я пробовал следующее, но это не сработало…
apply(mydf,1,function(x) levels(x) <- c("1","0"))
Я не очень удивлен, что это не работает, но у меня сейчас нет лучших идей. Может быть, я использую с
?
РЕДАКТИРОВАТЬ: Я понял, что сделал ошибку, слишком упрощая вещи. Я использовал addNA
, чтобы учесть тот факт, что NA больше не должны обрабатываться как NA Таким образом, я также хочу переименовать их.
Это не работает с предложением Андри и возвращает следующее сообщение об ошибке:
labels = c("1", : invalid labels; length 2 should be 1 or 1
Обратите внимание, что я обновил свой пример df.