2017-04-27 33 views
0

我收到了化合物浓度的csv表。分散在各处的字符值具有各种含义,如> 888,<0.2,/等等。csv读取期间将字符串转换为NA

有没有一种方法,最好使用碱基R或readr在读入时将它们转换为NA,因此只能从数字数据开始?

此刻,我只能找到a solution that relies on hard-coding every character string这将是太困难和费时。

+0

有读取CSV文件,当你试图指定那些为'na.strings'? –

+0

这是链接答案中的解决方案,但我想知道如何将它应用于任何字符串而不是指定的字符串。 – Joe

+0

链接帖子中接受的答案是不同的。那么问题在于你是否有任何方法知道可能存在的价值。如果不是,我想你必须完全读取它们,并稍后使用as.numeric –

回答

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 
+0

谢谢,但出于好奇,我想知道是否可以在阅读过程中完成。(无疑,一旦数据已经在R中,有很多方法可以实现这一点)。 – Joe

+0

我不知道一个简单的方法 - 不管怎样,你都必须阅读每一个条目,这样代码才能决定是接受还是拒绝,因此就效率而言,阅读所有内容然后进行整理是有意义的。 –

+0

我明白你的观点。 – Joe