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