Для таких случаев это для l oop хорошо и достаточно быстро.
for (i in 1:ncol(df)) df[, i] <- as.factor(df[, i])
(Скорее всего - по моему опыту - быстрее, чем любое lapply
или любое apply
семейное решение - потому что избегать построения списков, которые очень медленны в R.)
Для 1:ncol(df)
вы также можете использовать seq_along(df)
.