如何使用NA作为因子级别并在R中重命名?

时间:2017-08-10 15:06:40

标签: r

我有一系列因素,每个因素可能有一些(?m)(.*) (.*) (.*) (.*) (.*) \"(.*)\" \"(.*)\"。现在,我想为NA添加一个级别,并将其重命名为NA。我还要确保Missing是每个级别中的最后一个。这是我的代码,但它不起作用。

Missing

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:2)

我们可以尝试

lapply(data, function(x) {
     if(anyNA(x)) {
     levels(x) <- c(levels(x), "Missing")
     x[is.na(x)] <- "Missing"
     x}
     else x

  })
#$a
#[1] 1       1       2       2       3       Missing Missing
#Levels: 1 2 3 Missing

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

#$c
#[1] 3       4       Missing 3      
#Levels: 3 4 Missing