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

时间:2018-09-06 07:52:11

标签: r normalization

我试图将一列数值标准化为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) 

它给了我相同的价值!

有人可以帮助我确定为什么我的功能不起作用吗?输入正确吗?

2 个答案:

答案 0 :(得分:0)

我认为以下代码将帮助您标准化列

library(mlr)

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

这将标准化您的数据框和列

答案 1 :(得分:0)

您缺少某种感觉,不需要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)