Страница 1 из 1

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

Добавлено: 15 июн 2020, 10:06
VistaSV30
Добрый день!

Дано: таблица 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 работает как надо.

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

Спасибо!

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

Добавлено: 15 июн 2020, 10:57
nickleb

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

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

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

Добавлено: 15 июн 2020, 11:01
VistaSV30
Спасибо большое!
Всё работает! :D