Как перемасштабировать несколько атрибутов одновременно в 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)
вставьте вектор или положение ваших переменных в вашем фрейме данных, или вектор имен ваших переменных в виде строк.