當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


R forcats fct_na_value_to_level NA 值和 NA 水平之間的轉換


有兩種方法可以表示因子中的缺失值:在值中和在水平中。值中的 NA 對於數據分析最有用(因為 is.na() 返回您期望的內容),但由於 NA 沒有顯式記錄在級別中,因此無法控製其位置(它幾乎總是顯示)最後或根本沒有)。將 NA 放入級別中可以讓您控製其顯示,但代價是失去準確的 is.na() 報告。

(可能有一個因子在值和水平上都缺失值,但它需要一些明確的體操,我們不建議這樣做。)

用法

fct_na_value_to_level(f, level = NA)

fct_na_level_to_value(f, extra_levels = NULL)

參數

f

因子(或字符向量)。

level

或者,不要將 NA 值轉換為 NA 級別,而是將其轉換為具有該值的級別。

extra_levels

(可選)提供附加級別的字符向量也應轉換為 NA 值。

例子

# Most factors store NAs in the values:
f1 <- fct(c("a", "b", NA, "c", "b", NA))
levels(f1)
#> [1] "a" "b" "c"
as.integer(f1)
#> [1]  1  2 NA  3  2 NA
is.na(f1)
#> [1] FALSE FALSE  TRUE FALSE FALSE  TRUE

# But it's also possible to store them in the levels
f2 <- fct_na_value_to_level(f1)
levels(f2)
#> [1] "a" "b" "c" NA 
as.integer(f2)
#> [1] 1 2 4 3 2 4
is.na(f2)
#> [1] FALSE FALSE FALSE FALSE FALSE FALSE

# If needed, you can convert back to NAs in the values:
f3 <- fct_na_level_to_value(f2)
levels(f3)
#> [1] "a" "b" "c"
as.integer(f3)
#> [1]  1  2 NA  3  2 NA
is.na(f3)
#> [1] FALSE FALSE  TRUE FALSE FALSE  TRUE
源代碼:R/na.R

相關用法


注:本文由純淨天空篩選整理自Hadley Wickham等大神的英文原創作品 Convert between NA values and NA levels。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。