lapply忽略NA

时间:2017-08-29 23:49:30

标签: r lapply na

您好我想在我的数据集 - 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))

谢谢!

2 个答案:

答案 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)))
}