2011-02-23 72 views
1

summary(或另一個命令)強制R在每個單元格中有「無數據」時計算值嗎?當不是所有的單元格都有數據時,R`summary`

在我的問卷調查對象沒有提供的所有信息;對於那些我輸入的單元格-nodata-。對於答案不適用的單元格(基於q中的上一個問題),我輸入了-1。該summary看起來是這樣的:

> summary(qs$ESC) 
     -1 -nodata-  0.5  1  12  15  3 
     49  3  1  1  1  1  1 

我要的是計算出的概要。有沒有辦法告訴[R無視-nodata--1

回答

3

我真的不明白你要計算什麼樣的總結。

如果您使用的NA,而不是你的 「-nodata-」 和 「-1」 的代碼,他們會自動使用summary功能時考慮到:

例如:

R> v <- c(NA, NA, 0.5, 1, 12, 15, 3) 
R> summary(v) 
    Min. 1st Qu. Median Mean 3rd Qu. Max. NA's 
    0.5  1.0  3.0  6.3 12.0 15.0  2.0 
R> table(v) 
v 
0.5 1 3 12 15 
    1 1 1 1 1 

你可以看到v被認爲是數字,因爲它沒有字符串值。當您引入「-nodata-」值時,它將被視爲一個字符或一個因子變量。

您還可以使用table功能的exclude參數自動忽略一些值:

R> v <- c(-1, "-nodata-", 0.5, 1, 12, 15, 3) 
R> table(v) 
v 
    0.5  1  -1  12  15  3 -nodata- 
     1  1  1  1  1  1  1 
R> table(v, exclude=c(-1, "-nodata-")) 
v 
0.5 1 12 15 3 
    1 1 1 1 1 
+0

即我是缺少的一條信息。非常感謝你! – marw 2011-02-23 22:27:47

1

這很可能是ESC列是一個因素,默認爲從一個函數read.table data.frame當對列的數據類型進行猜測並且需要字符時。你應該參數stringsAsFactors=FALSE可能添加到原來的調用函數read.table - 這將給列文本,然後轉換「-nodata-」值NA,然後轉換爲數值。

還有函數read.table到一個na.strings參數,它可以被設置爲na.strings = "-nodata-"與NA自動替換這些。

最後一個猜測從現有data.frame去,更換無數據值,並轉換爲數字:

qs$ESC[qs$ESC == "-nodata-"] <- NA 
summary(as.numeric(levels(qs$ESC))[qs$ESC] 

這對因子的水平索引被推薦的因素,但你應該退一步?其中數據被讀取或以其他方式生成和

+1

感謝您的支持。我最好不要在內部轉換「NA」,並在電子表格中保持所有數據不變。 – marw 2011-02-24 10:24:03

相關問題