Изменить тип нескольких колонок фрэйма

Вопросы по статистическому пакету R. Не обязательно гео.
Ответить
Аватара пользователя
VistaSV30
Активный участник
Сообщения: 185
Зарегистрирован: 02 июл 2018, 15:05
Репутация: 7
Откуда: Балашиха

Изменить тип нескольких колонок фрэйма

Сообщение VistaSV30 » 15 июн 2020, 10:06

Добрый день!

Дано: таблица df и список имен колонок, которые нужно преобразовать в тип Factor

Код: Выделить всё

df <- data.frame(1:5,n1=4,n2=3, n3=7)

# Имена колонок для преобразования типа
nm <- c("n1", "n2")
n <- which(names(df) == nm[1])

df[,n] <- as.factor(df[,n])
По одной колонке получается преобразовать, а нужно все сразу.
По логике, можно бы применить цикл for, но в учебнике пишут, что в R нежелательно for использовать.

Код: Выделить всё

for (i in 1 : length(nm)){
  n <- which(names(df) == nm[i])
  df[,n] <- as.factor(df[,n])
}
Хотя for работает как надо.

Подскажите как правильно сделать?

Спасибо!
Природа не просто эксцентричнее, чем мы полагаем - она эксцентричнее, чем мы способны предположить. John Haldane

nickleb
Гуру
Сообщения: 964
Зарегистрирован: 22 май 2010, 20:20
Репутация: 154

Re: Изменить тип нескольких колонок фрэйма

Сообщение nickleb » 15 июн 2020, 10:57

Код: Выделить всё

df[,nm] <- lapply(df[,nm], as.factor)

Аватара пользователя
VistaSV30
Активный участник
Сообщения: 185
Зарегистрирован: 02 июл 2018, 15:05
Репутация: 7
Откуда: Балашиха

Re: Изменить тип нескольких колонок фрэйма

Сообщение VistaSV30 » 15 июн 2020, 11:01

Спасибо большое!
Всё работает! :D
Природа не просто эксцентричнее, чем мы полагаем - она эксцентричнее, чем мы способны предположить. John Haldane

Ответить

Вернуться в «R»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 10 гостей