在switch()循环中匹配NA

时间:2015-05-27 11:54:53

标签: r

我想运行switch循环并且能够匹配NA,例如:

    switch(var, match1 = do something, match3 = do something)

如果var NA switch(var, match1 = do something, match3 = do something, NA = do something) ,那该怎么办呢?

is.na()

我也尝试了NA而不是new FileInputStream("C&LBOLD.ttf"),但它没有用。

1 个答案:

答案 0 :(得分:7)

在这种情况下,NA必须使用反引号(或引号)进行转义

switch(var, match1 = do something, `NA` = do something)

需要注意的一点是,您不能直接switch NA值。例如

switch(NA, `NA` = 1)

不起作用,你应该使用例如。

switch(as.character(NA), `NA` = 1)
# [1] 1

代替。使用var[is.na(var)] <- ...

可能更好