2012-06-18 18 views
0

缺失數據在文本文件中表示爲9999.00,9999.0和9999.000。 如果我在指定:如何在Rcmdr中爲NA分配不同的值?

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

我不使用Rcmdr(用R來做這件事很簡單)。但是,快速的解決方法是使用文本編輯器將這些值替換爲NA。 – Roland

+0

我只會讀取原始數據並手動將這些值設置爲NA。 'my.obj [my.obj == 999.0] < - NA; my.obj [my.obj == 999.00] < - NA'。假設這些值是以係數讀入的。如果我們會看到您要導入的文件的頭部,或者更好,導入文件的「str」,那將會很好。 –

回答

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

是的,它做了伎倆 – sacvf

1

Rcmdr只是一個菜單的圖形用戶界面,所以它可能使用標準輸入功能。 read.table函數對值作爲字符串進行處理。您給read.table函數一個名爲na.strings的參數。我嚴重懷疑它是否評估輸入以查看它是否在數字上相同。默認字符串是「NA」。我不是Rcmdr的用戶,但我的預測是,你可以給這個函數「9999」和「9999.0」,並得到你想要的行爲。真正的問題是輸入數據流中的內容。你還沒有解釋這個問題。

獲得答案的最佳方法是複製執行菜單驅動命令時出現的R代碼。然後,我們可以將適當的字符串添加到R代碼中,以獲得您想要去的位置。 Rcmdr可能無法獲得完整答案。它的設計確實是一種初學者的方法,可以幫助您理解命令行R.(我們大多數人都是從另一條路線開始,從一開始就從命令行開始使用R,所以您可能需要幫助我們位)

+0

我添加了上面的代碼 – sacvf