根据我的范围归一化我的表

问题描述 投票:0回答:1

我想根据所有表的最大值和最小值对我的所有表(而不是按列或行)进行规范化。

例如:

enter image description here

在整个表格中:最多:9最小:0

所以我想将0到9之间的所有这些数字标准化为0到1之间的数字!

有帮助吗?

r normalize
1个回答
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))
© www.soinside.com 2019 - 2024. All rights reserved.