规范化一列返回相同的值?

Normalising a column gives back same values?

我正在尝试将一列数值标准化为介于 0 和 1 之间。我编写了以下 R 代码来尝试将其应用于一列,但它不起作用。有人可以帮忙吗?

normalise <- function(x) {
  return (x-min(x)/(max(x)-min(x))) # Creating the function

train$dti_norm <- apply(select(train,dti),MARGIN=2, FUN = normalise) 

它给了我相同的值!

谁能帮我确定为什么我的功能不起作用?我的输入正确吗?

我认为下面的代码将帮助您标准化您的专栏

library(mlr)

trainTask <- normalizeFeatures(trainTask,method = "standardize")

如果您需要,这将标准化您的数据框和列

你漏掉了一些括号,不需要 apply:

normalise <- function(x) {
  return ((x - min(x))/(max(x) - min(x)))
  } # Creating the function

set.seed(123)
x <- sample(10, 10)
x
#[1]  3  8  4  7  6  1 10  9  2  5


normalise(x)
#[1] 0.2222222 0.7777778 0.3333333 0.6666667 0.5555556 0.0000000 1.0000000 0.8888889 0.1111111 0.4444444


#train$dti_norm <- normalise(train$dti)