如何在Rcmdr中为NA分配不同的值?

时间:2012-06-18 11:21:27

标签: r

缺少的数据在文本文件中表示为9999.00,9999.0和9999.000。 如果我在:

中指定
    Rcmdr->data->import->missing data indicator  as  9999,nothing will be assigned to NA.

   but when I assigned to 9999.0  then only the values of 9999.0 are assigned to NA.

是否有任何关于如何在Rcmdr中为NA分配不同值的想法。 这是添加的代码:

      Dataset <- 
    read.table("C:/Users/BRSa12002_L4_d.txt", 
     header=TRUE, sep=",", na.strings="-9999.00", dec=".", strip.white=TRUE)

2 个答案:

答案 0 :(得分:1)

Rcmdr只是一个菜单GUI,因此它可能使用标准输入函数。 read.table函数将值作为字符串。您为read.table函数提供了一个名为na.strings的参数。我严重怀疑它会评估输入,看它是否在数值上相同。默认字符串为“NA”。我不是Rcmdr用户,但我的预测是你可以给“9999”和“9999.0”这个功能并获得你想要的行为。真正的问题是输入数据流中的内容。你还没有解释过这个问题。

获得答案的最佳方法是复制执行该菜单驱动命令时出现的R代码。然后,我们可以将适当的字符串添加到R代码中,以便您到达目的地。 Rcmdr可能无法获得完整的答案。它实际上是作为一种启动方法设计的,可以帮助您快速了解命令行R.(我们大多数人采用了另一条路径,并从一开始就从命令行开始使用R,因此您可能需要帮助我们位。)

答案 1 :(得分:1)

?read.table我们了解到参数na.strings采用向量。因此,您可以使用它将多个不同的值指定为NA。

Dataset <- read.table("C:/Users/BRSa12002_L4_d.txt", 
               header=TRUE, sep=",", 
               na.strings=c("-9999.00","-9999.0","-9999"), 
               dec=".", strip.white=TRUE)