У меня есть кадр данных, подобный этому:
df <- data.frame(x1=c(1, 2, 3, 2, 1),
x2=c(1, 10, 5, 8, 3))
И я пытаюсь нормализовать обе переменные между 0 и 1. Так что 2 в x1
будет 0,5, а 5 в x2
будеттакже будет 0,5.
Я попытался использовать следующую функцию нормализации:
range01 <- function(x){(x-min(x, na.rm = T))/(max(x, na.rm = T)-min(x, na.rm = T))}
df <- range01(df)
Но вместо этого он нормализует все переменные по диапазону всего фрейма данных (от 1 до 10), давая это:
x1 x2
0.0000000 0.0000000
0.1111111 1.0000000
0.2222222 0.4444444
0.1111111 0.7777778
0.0000000 0.2222222
Как я могу нормализовать оба столбца по их индивидуальному диапазону?Для этого мне нужна систематическая функция, так как я работаю со многими переменными во многих фреймах данных в цикле for.