2017-04-22 84 views
-1

我有一個數據集,說明下面的描述:NA和丟失以及如何在R中對它們進行編碼有什麼區別?

  • 非適用(NA)被編碼爲88888
  • 缺失的數據被編碼爲空白或99999

我認爲NA是相當於缺失的數據,這將使上述等價。或者不適用於不可能的值(例如,除以零)?如果他們被視爲等效,我可以簡單地將88888,999999和空格轉換爲NA。謝謝你的幫助。

+1

親愛downvoter:

或者,當你加載你的數據,你也許能夠解決這個問題的權利。降低禮儀程度表明你會對你的失望留下建設性的評論。否則,OP沒有任何東西可以從中學習。 –

+2

不知道數據集的具體情況很難說清楚。如果描述告訴你NA和遺漏的編碼不同,可能有其原因。將它們編碼相同可能不是最好的想法。 –

+0

@ Mike H.我完全同意,這就是我懷疑的原因。但是,這是數據集描述中提供的唯一信息。但我怎麼能區分它們?真正的失蹤者會隨機失蹤,但「不適用」可能不會隨機錯過。 –

回答

1

是,NA是等同於「空單元格」

你可以做到這一點,以減少文件大小

data$column_with_8888s = ifelse(data$column_with_8888s == 8888, NA, data$column_with_8888s) 
1

丟失數據是R. NA您必須設置或計算你如果您需要在此上下文中略有不同的缺失定義,則可以在查看摘要數據時擁有自己的基礎。

有時,在轉換它們之前獲得這些計數值可能很有用。

not_applicables <- lapply(mydata, function(x) sum(x == "88888") 
missings <- lapply(mydata, function(x) sum(x == "999999")) 

mydata <- as.data.frame(lapply(mydata, function(x) { 
    x[x %in% c('88888','99999') <- NA 
    x 
} 

不適用,很可能是你可能不希望排除,因爲如果你要轉換因素,總結不會區分它們的類別。

read.csv(..., na.strings = c("88888","99999")) 
相關問題