2017-02-24 75 views
-1

我是R和openrefine中的新成员。 我有一个数据集,但其中一些值有?而非有效值。OpenRefine:用NA代替错过的值

我想更换?与现实NA这样我就可以忽略它们很容易忽略他们

na.rm = TRUE 

要做到这一点,我用openrefine和

编辑单元格 - >变换 - >value.replace("?","NA")

虽然它改变了NA但NA的类型为字符串,所以它是没有用的

我怎样才能将它转换过一个真正的NA?

+0

这不是我的回答 – Salman

+0

'value.replace(“?”,NA)'??。不确定,没有使用openrefine。 –

+0

'错误:替换期望3个字符串,或1个字符串,1个正则表达式和1个字符串' – Salman

回答

0

如果您读取的数据集包含“?”已经,如果你从csv(也许)读它,那么你可以做下面的。

例: “?”

input_file = read.csv('input.csv', header = T, as.is = T, na.strings = c("NA","?")) 

这会考虑为NA在读取数据集,这样就可以使用na.rm

但是我会建议使用grep的功能,足以取代这种特殊字符或当你想删除它们,只需使用dplyr ::过滤器除去行时该列对应的值等于“?”。也可以为此提供代码,但自己尝试一下是一个很好的学习。

希望这会有所帮助。

+0

请参阅此问题以获得更好的解决方案。 http://stackoverflow.com/questions/21422114/na-strings-applied-to-a-dataframe –

+0

你可以针对某些情况发布一个单独的问题吗?我不认为这与你之前的问题有关。 –