2017-07-31 636 views
0

我是R中的新成员。我的数据集包含分类变量为“重要性”,有三个类别,分别为“高”,“中”,“低”,总观测值为1000,是'不适用'。现在,我想将上面提到的变量的编码标记为“高”= 0,“中”= 1,“低”= 2并且还想编码“NA”= 3。我所做的迄今为止: -对R中的多个分类变量进行标签编码

Data$importance=as.numeric(Data$importance) 

但这是编码“NA”失败。在python中,我们将库作为labelEncoder。那么R是否有这样的软件包?如果不是,那么对于多分类变量,最具体的方法是什么?

+0

https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example – snoram

回答

0
df = data.frame(label=c("Low","High","Medium",NA,"High")) 
df$importance = match(df$label, c("High", "Medium", "Low", NA)) - 1 
df 
#  label importance 
# 1 Low   2 
# 2 High   0 
# 3 Medium   1 
# 4 <NA>   3 
# 5 High   0 
0

您可以按以下方式以及做编码:

y=data.frame("importance"=c("high","low","medium","NA"),stringsAsFactors = FALSE) 
y$importance <- replace(y$importance, y$importance == "high", 0) 
y$importance <- replace(y$importance, y$importance == "medium", 1) 
y$importance <- replace(y$importance, y$importance == "low", 2) 
y$importance <- replace(y$importance, y$importance == "NA", 3) 
+0

这对于具有DataType作为'factor'的分类变量是否也适用? – Bits

+0

对于数据类型为“factor”的分类变量,您可以使用stringAsFactors = FALSE强制它们使用字符,否则替换会生成警告,并且不会给出期望的结果。您可以使用as.character将因子类型的变量类型更改为字符 –