2017-07-31 64 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將因子類型的變量類型更改爲字符 –