试试这个,我已经修改了normalized
功能考虑NA
values:
db<-data.frame(a=c(22,33,28,51,25,39,54,NA,50,66),
b=c(22,33,NA,51,25,39,54,NA,50,66))
normalized<-function(y) {
x<-y[!is.na(y)]
x<-(x - min(x)) / (max(x) - min(x))
y[!is.na(y)]<-x
return(y)
}
apply(db[,c(1,2)],2,normalized)
你的输出:
a b
[1,] 0.00000000 0.00000000
[2,] 0.25000000 0.25000000
[3,] 0.13636364 NA
[4,] 0.65909091 0.65909091
[5,] 0.06818182 0.06818182
[6,] 0.38636364 0.38636364
[7,] 0.72727273 0.72727273
[8,] NA NA
[9,] 0.63636364 0.63636364
[10,] 1.00000000 1.00000000