2017-10-05 90 views
0

我是新來的R和我試圖重新編碼的數值變量 是1,2,3字符串。我已經看到如何做到這一點,但我不知道爲什麼我的 不工作,也許這是因爲它應該從字符串到數字? 這就是我得到的,並且提前感謝!重新編碼數量的串R

cars$origin = as.factor(cars$origin) 
cars$origin 
[1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 1 1 1 3 2 2 2 2 2 1 1 1 1 1 3 1 3 1 1 
[35] 1 1 1 1 1 1 1 1 2 2 2 3 3 2 1 3 1 2 1 1 1 1 1 1 1 1 1 1 1 3 1 1 1 1 
[69] 2 2 3 3 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 1 1 3 1 2 1 3 1 1 1 
Levels: 1 2 3 

cars$origin <- recode(cars$origin, "1='american';2='european';3='japan'") 

錯誤:參2必須是命名,而不是無名

+0

真的嗎?我認爲它應該寫得很好,但錯誤仍然存​​在... –

回答

3

功能factor有這樣的說法labels

cars$origin = factor(cars$origin, 
    levels = c(1, 2, 3), 
    labels = c("american", "european", "japan")) 
+0

這是相當邏輯!問題已解決。謝謝!1 –

+0

在這種特定情況下,您已經指定了級別編號,它也可以在沒有指定'levels'參數的情況下運行。 – Jaap

+0

正確,@Jaap。在這種特定情況下,我們可以跳過'levels'參數。不過,如果你不知道「因素」的確切行爲,它會回答所有問題。 – Gedrox