根据我的范围标准化我的 table

normalize my table according to my ranges

我想根据所有 table 的最大值和最小值对所有 table(不是按列或行)进行归一化。

例如:

在这整个 table 中: 最大值:9 最小值:0

所以我想将所有这些介于 0 和 9 之间的数字归一化为介于 0 和 1 之间!

有帮助吗?

这种归一化的标准公式是

(xi - min(x))/(max(x) - min(x))

所以对于这些数据我们可以做

vals <- unlist(df)
max_val <- max(vals)
min_val <- min(vals)
df[] <- (vals - min_val)/(max_val - min_val)

df
#  column1 column2 column3
#1  0.1111  0.3333  1.0000
#2  0.2222  0.4444  0.6667
#3  0.3333  0.6667  0.3333
#4  0.4444  0.3333  0.1111
#5  0.5556  0.0000  0.7778

数据

df <- data.frame(column1 = 1:5, column2 = c(3, 4, 6, 3, 0), 
                 column3 = c(9, 6, 3, 1, 7))