【问题标题】:Converting strings to NA during csv reading在 csv 读取期间将字符串转换为 NA
【发布时间】:2017-04-27 12:43:32
【问题描述】:

我收到了一个化合物浓度的 csv 表。散布在各处的字符值具有各种含义,例如> 888<0.2/ 等等。

有没有办法,最好使用基数 R 或 readr,在读入时将它们转换为 NA,从而仅从数字数据开始?

目前我只能找到a solution that relies on hard-coding every character string,这太难了,太费时了。

【问题讨论】:

  • 您在读取 ​​csv 文件时是否尝试将其指定为 na.strings
  • 这是链接答案中的解决方案,但我想知道如何将其应用于任何字符串而不是指定字符串。
  • 链接帖子中接受的答案不同。那么问题是你是否有办法知道可以有什么价值。如果没有,我想您必须完整阅读它们并稍后使用 as.numeric 进行转换
  • 不,它们很乱,而且它们的共同点是非数字字符。可能我只需要阅读它们并按照您所说的进行转换。

标签: r readr


【解决方案1】:

读完之后,只需使用as.numeric...

a <- c("1","2","3",">4","5","6-7","8+","9")

as.numeric(a)
1  2  3 NA  5 NA NA  9

【讨论】:

  • 谢谢,但出于好奇,我想知道是否可以在读入的过程中完成。(毫无疑问,一旦数据已经在 R 中,有很多方法可以实现这一点。)
  • 我不知道一个简单的方法 - 无论如何你都必须阅读每个项目,以便代码可以决定是接受还是拒绝它,所以就效率而言,它是有意义的阅读所有内容,然后进行整理。
猜你喜欢
  • 1970-01-01
  • 2015-09-16
  • 2023-04-08
  • 1970-01-01
  • 2021-07-13
  • 1970-01-01
  • 1970-01-01
  • 2016-07-10
  • 1970-01-01
相关资源
最近更新 更多