【问题标题】:Remove rows with missing values in R [duplicate]删除R中缺少值的行[重复]
【发布时间】:2018-02-27 00:30:46
【问题描述】:

我想删除所有带有 NA 的行,我尝试了 na.omit,但我的数据中仍然有所有“#N/A”值...

这是我的代码:

mydata = read.csv('file:///C:/Users/file.csv')
mydata = as.data.frame(mydata)
mydata[mydata$col2== "#N/A"] <- "NA"
na.omit(mydata$col2)

我能做什么?

我也试过这个:

mydata = mydata[!is.na(mydata)]

但它也不起作用

【问题讨论】:

    标签: r na missing-data


    【解决方案1】:

    您应该指示 R 立即将字符串 #N/A 视为 NA。 na.strings 到 read.csv 的参数告诉 R 哪些字符串被视为 NA。

    mydata <- read.csv('file:///C:/Users/file.csv', na.strings = c("", "NA", "#N/A"))
    mydata[complete.cases(mydata), ]
    

    【讨论】:

      【解决方案2】:

      您可以使用complete.cases 函数来做到这一点

      mydata = mydata[complete.cases(mydata), ]
      

      【讨论】:

        【解决方案3】:

        您的代码存在多个问题:

        1. 通常最好使用read.csv 指定stringsAsFactors = FALSE(除非您真的需要因子)

        2. read.csv后面不用as.data.frame,你已经有数据框了

        3. 在第三行中,]]之前需要一个逗号

        4. 您将替换为字符串“NA”,只需使用NA(无引号)

        5. 要从数据框mydata 中删除行,只需使用na.rm(mydata),而不是mydata$col2

          mydata = read.csv('file:///C:/Users/file.csv', stringsAsFactors = FALSE)
          mydata[mydata$col2 == "#N/A", ] <- NA
          na.omit(mydata)
          

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-11-07
          • 2021-05-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多