1
這個函數有什麼錯? 我需要返回相同的向量作爲輸入,如果所有的值是0,否則最小 - 最大規範化檢查0矢量中的R
normalize <- function(x) {
if (all(x==0)) return x
return((x-min(x))/(max(x)-min(x)))
}
這個函數有什麼錯? 我需要返回相同的向量作爲輸入,如果所有的值是0,否則最小 - 最大規範化檢查0矢量中的R
normalize <- function(x) {
if (all(x==0)) return x
return((x-min(x))/(max(x)-min(x)))
}
我認爲你的問題只是你沒有在你的回報語句中使用()
。
x <- as.numeric(c(0,0,1,0,0,1,100,0,0,1,-23))
normalizeX <- function(x) {
if (all(x==0)) {
return (x)
} else{
m <- min(x)
ma <- max(x)
result <- ((x-m)/(ma-m))
return (result)
}
}
normalizeX(x)
[1] 0.1869919 0.1869919 0.1951220 0.1869919 0.1869919 0.1951220 1.0000000 0.1869919 0.1869919 0.1951220 0.0000000
x <- as.numeric(c(0,0,0))
normalizeX(x)
[1] 0 0 0
我加了一些其他小的變化,比如調用函數東西是不會被包被屏蔽,並存儲中間值,便於調試/分析。
你爲什麼不用'else'? – akrun
我認爲這是不必要的 –
我想'歸一化< - 函數(x){if(all(x == 0))x else((x-min(x))/(max(x)-min x))) }' – akrun