我试图将一列数值标准化为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)
有人可以帮助我确定为什么我的功能不起作用吗?输入正确吗?
答案 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)