您好我想在我的数据集 - trainingData [1]的列上进行规范化。此列的类型为num。但是当我运行下面的代码时,它给了我所有的NA,是因为我的数据集中有NA,我怎么能告诉lapply忽略它。
normalize <- function(x) {
return ((x - min(x)) / (max(x) - min(x)))
}
trainingData[1] <- as.data.frame(lapply(trainingData[1], normalize))
谢谢!
答案 0 :(得分:1)
试试这个
normalize <- function(x) {
return ((x - min(x,na.rm=T)) / (max(x,na.rm=T) - min(x,na.rm=T)))
}
答案 1 :(得分:1)
您可以将is.na()
过滤器内置到normalize()
功能中:
normalize <- function(x) {
#first option
x <- x[!is.na(x)]
#second option
#x <- na.omit(x)
return ((x - min(x)) / (max(x) - min(x)))
}