最近,我面臨table
功能,這不是我所期待的一種行爲:意外行爲值
例如,我們採取以下向量:
ex_vec <- c("Non", "Non", "Nan", "Oui", "NaN", NA)
如果我在矢量檢查NA
值,"NaN"
不被視爲一個(預期):
is.na(ex_vec)
# [1] FALSE FALSE FALSE FALSE FALSE TRUE
但是,如果我嘗試得到不同的頻率值:
table(ex_vec)
#ex_vec
#Nan Non Oui
# 1 2 1
"NaN"
沒有出現在表格中。
但是,如果我「問」 table
展現NA
值,我得到這個:
table(ex_vec, useNA="ifany")
#ex_vec
# Nan NaN Non Oui <NA>
# 1 1 2 1 1
所以,字符串"NaN"
被視爲NA
值內table
通話,同時在治療輸出爲不是NA
的值。
我知道(這會更好,我可以通過將我的矢量轉換爲factor
來解決我的問題,但是,我真的很想知道這裏發生了什麼。有人有想法嗎?
這只是基本用法..像「爲什麼'和(C(1,NA)) '回來不適合?「 'table(...,exclude = if(useNA ==「no」)c(NA,NaN),useNA = c(「no」,「ifany」,「always」)'我不明白這些答案 – rawr
@rawr解釋了爲什麼一個*字符串*被認爲是一個'NaN'值?這不是被問到的用法,而是它的原因,它不如文檔中涵蓋的總和示例明顯。我的意思是:'NaN!=「NaN」'那麼爲什麼''NaN'''被排除,因爲它不是排除向量的一部分) – Tensibai
@Tensibai再次,文檔說'排除:所有因素去除的水平_levels_ 'NA'也不是'NaN',它們是_strings_ .. aways _strings_嘗試'table(1,exclude = 1)' – rawr