【问题标题】:How can I get readr to handle quoted NA values?如何让 readr 处理引用的 NA 值?
【发布时间】:2016-07-16 05:30:43
【问题描述】:
library(readr)

csv <- 'x,y
"1","N/A"
"N/A","2"
'

df <- read_csv(csv, col_types = "ii", na=c("\"N/A\"", "N/A"))

运行这个会产生:

> df <- read_csv(csv, col_types = "ii", na=c("\"N/A\"", "N/A"))
Warning: 2 parsing failures.
row col   expected actual
  1   y an integer    N/A
  2   x an integer    N/A

实际上,"N/A" 的值最终会变成 NA,但是有没有更优雅的方法来处理这个问题?例如,这运行没有问题,说明了所需的行为。

csv2 <- 'x,y
"1",N/A
N/A,"2"
'

df2 <- read_csv(csv2, col_types = "ii", na="N/A")  

【问题讨论】:

  • 我在第一种情况下收到了一些警告,但它读取为 NA。
  • 我知道它的结尾是NA。但是当我看到Warning: 296656 parsing failures 时,最好抑制非问题的警告(即"N/A" 被转换为NA)。
  • 我不知道在read_csv内是否可以,但你可以在read_csv(gsub('"', "", csv), col_types = "ii", na = "N/A")内做

标签: r readr


【解决方案1】:

事实证明这是known issue 已在readr 的(当前)开发版本中得到解决。这样做可以解决问题:

library(devtools)
install_github("hadley/readr")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-12
    • 2020-05-22
    • 2014-12-28
    相关资源
    最近更新 更多