2014-04-12 59 views
0

我正在分析兩個因子變量,它們有一些缺失值。我怎麼可以忽略遺漏值表命令:解決表命令中的缺失值

> table(code3,code4) 
     code4 
code3  HIGH LOW 
     134 9 1 
    HIGH 22 7 0 
    LOW 19 0 8 
> 
> 
> round(prop.table(table(code3,code4),2),2) 
     code4 
code3  HIGH LOW 
     0.77 0.56 0.11 
    HIGH 0.13 0.44 0.00 
    LOW 0.11 0.00 0.89 
> 

我想表只顯示「高」和「低」值列和行,即忽略所有缺失值。

也請告訴我,如果這些缺失值將作任何差異chisq.test:

> 
> chisq.test(code3,code4) 

     Pearson's Chi-squared test 

data: code3 and code4 
X-squared = 57.8434, df = 4, p-value = 8.231e-12 

Warning message: 
In chisq.test(code3, code4) : 
    Chi-squared approximation may be incorrect 
> 
> 

我懷疑這是一個簡單的問題,但我不能在互聯網上找到任何簡單的答案。

「幫助(表)」 中的R指令提供以下信息:

## NA counting: 
    is.na(d) <- 3:4 
    d. <- addNA(d) 
    d.[1:7] 
    table(d.) # ", exclude = NULL" is not needed 
    ## i.e., if you want to count the NA's of 'd', use 
    table(d, useNA="ifany") 

我怎樣才能使它適應我的要求?謝謝你的幫助。

+0

歡迎來到SO。請提供一個工作示例:http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example – sgibb

回答

1

我懷疑你的'缺失值'是空白("")。如果您將它們編碼爲NA,您可以讓生活更輕鬆。

一個小例子(什麼,我猜是怎麼回事)

# sample data with some 'missing values' 
x <- c("high", "", "low", "", "high", "") 
x 
table(x) 
# high low 
# 3 2 1  

# replace "" with R:s 'official' missing values 
x[x == ""] <- NA 

table(x) 
# x 
# high low 
# 2 1 

或許與此有關,以及是na.strings論點read.table

下一次,請提供一個最小的自包含示例。檢查這些鏈接以獲取一般想法,以及如何在R:hereherehere中執行此操作。

+0

感謝您的回覆。我試過'x [x ==「」] < - NA',儘管表格仍然顯示'0'值。 我可以將na.strings =「NA」添加到read.csv(文件名)嗎?我試過了,但它似乎不起作用。 – rnso

+1

在'na.strings'中指定缺失值在文本文件中編碼的值,然後在文件中將其轉換爲「NA」。正如你可以在幫助文本'read.table'中看到的:「空白字段也被認爲是邏輯,整數,數字和複雜字段中的缺失值。」如果你的變量被'read.table'解釋爲一個字符,那麼一個空白不會被認爲是丟失的,而是在數據框中顯示爲'「」'。同樣,您需要提供一個**最小可重現的示例**以獲得更具體的幫助。 – Henrik