将NA视为多个变量的因子级别

时间:2018-01-31 16:18:19

标签: r missing-data categorical-data

我正在尝试在大型分类数据集上运行k模式。

每个变量都有几个NA,但我想保留这些信息,因为对我来说这是有意义的。

K模式不适用于具有NA的数据集,因此,我正在寻找一种快速方法,将所有变量中的所有NA视为因子级别。

我已经阅读了很多问题,但答案完全适用于名字式的方式。

使用R?

的任何建议
mydf <- data.frame(a = factor(c("a", NA, NA)), b = factor(c("b", NA, NA)), c = factor(c("yo", NA, NA)))

1 个答案:

答案 0 :(得分:3)

试试这个:

mydf <- data.frame(a = factor(c("a", NA, NA)), b = factor(c("b", NA, NA)), c = factor(c("yo", NA, NA)))

从因素到角色

mydf <- data.frame(lapply(mydf, as.character), stringsAsFactors=FALSE)

换人

mydf[is.na(mydf)]<-"Something"

回到因素

mydf <- data.frame(lapply(mydf, as.character), stringsAsFactors=TRUE)

您的新因素

factor(mydf$a)
[1] a         Something Something
Levels: a Something