R 引用由addNA创建的因子级别

R 引用由addNA创建的因子级别,r,R,如果我有一个带有NA值的因子数组,可以方便地 用附加级别和addNA 函数使这变得容易 x <- factor(c("a", "b", NA)) x ## [1] a b <NA> ## Levels: a b is.na(x) ## [1] FALSE FALSE TRUE x2 <- addNA(x) x2 ## [1] a b <NA> ## Levels: a b <NA> 我认为这是我能做的最干净

如果我有一个带有
NA
值的因子数组,可以方便地 用附加级别和
addNA
函数使这变得容易

x <- factor(c("a", "b", NA))

x

## [1] a    b    <NA>
## Levels: a b

is.na(x)

## [1] FALSE FALSE  TRUE

x2 <- addNA(x)

x2

## [1] a    b    <NA>
## Levels: a b <NA>

我认为这是我能做的最干净的事情:

x <- factor(c("a", "b", "b", NA, "a", NA))
x2 <- addNA(x)
x2
#[1] a    b    b    <NA> a    <NA>
#Levels: a b <NA>

is.na(levels(x2))[x2]
#[1] FALSE FALSE FALSE  TRUE FALSE  TRUE

x我想这是我能做到的最干净的了:

x <- factor(c("a", "b", "b", NA, "a", NA))
x2 <- addNA(x)
x2
#[1] a    b    b    <NA> a    <NA>
#Levels: a b <NA>

is.na(levels(x2))[x2]
#[1] FALSE FALSE FALSE  TRUE FALSE  TRUE
x更新(2016-10-04):在提出这个问题后不久,软件包就发布了。它包含函数
fct\u explicit\u na
,可轻松解决此问题

library(forcats)
x <- factor(c("a", "b", "b", NA, "a", NA))
x2 <- fct_explicit_na(x)
x2

## [1] a         b         b         (Missing) a         (Missing)
## Levels: a b (Missing)

x2 == '(Missing)'

## [1] FALSE FALSE FALSE  TRUE FALSE  TRUE
另一个选项(根据)是更换
与其他事物保持一致

levels(x2)[is.na(levels(x2))] <- "isNA"

x2

## [1] a    b    b    isNA a    isNA
## Levels: a b isNA
levels(x2)[is.na(levels(x2))]。它包含函数
fct\u explicit\u na
,可轻松解决此问题

library(forcats)
x <- factor(c("a", "b", "b", NA, "a", NA))
x2 <- fct_explicit_na(x)
x2

## [1] a         b         b         (Missing) a         (Missing)
## Levels: a b (Missing)

x2 == '(Missing)'

## [1] FALSE FALSE FALSE  TRUE FALSE  TRUE
另一个选项(根据)是更换
与其他事物保持一致

levels(x2)[is.na(levels(x2))] <- "isNA"

x2

## [1] a    b    b    isNA a    isNA
## Levels: a b isNA

levels(x2)[is.na(levels(x2))]为真。根据我对该方法的理解,它看起来像是
droplevels.factor
只是对
factor
的调用。根据我对该方法的理解,它似乎是
droplevels.factor
只是对
factor
的调用。