Как перемасштабировать несколько атрибутов одновременно в R

У меня есть набор данных, который содержит несколько атрибутов с целочисленными значениями от 1 до 5, и я хотел бы изменить эти атрибуты так, чтобы их значения варьировались от -1 до 1. Мой текущий код, который у меня есть,

    newdata$Rats = rescale(newdata$Rats, to = c(-1,1), from=c(1,5))

куда newdata мой набор данных и Rats это один из моих атрибутов. Если бы у меня было только несколько атрибутов для изменения, это было бы хорошо, но у меня было бы около 30 или около того, чтобы измениться. Есть ли способ использовать цикл для этого или использовать select функция, которую имеет R или, возможно, другой путь?

1 ответ

Решение

Использование lapply():

newdata[, c(1:30)] <- lapply(newdata[, c(1:30)], 
                             function(x) rescale(x, to = c(-1, 1), from = c(1, 5)))

Для c(1:30)вставьте вектор или положение ваших переменных в вашем фрейме данных, или вектор имен ваших переменных в виде строк.

Другие вопросы по тегам