2016-08-02 174 views
0

我希望這個問題不是題目。 我知道如何在R中編寫一個虛擬變量,但是,我想知道是否可以在Excel中創建它。比方說,我有一個顏色變量下的3種顏色(紅色,藍色,黃色)列表。 R會將其作爲3個級別的因素導入。Excel虛擬變量R

現在,如果我想在Excel中做到這一點,我可以做出3個新的預測變量(而不是顏色,現在變成紅色,藍色和黃色),如果它是紅色,則置1紅色,否則爲0上?或者R會繼續將其解釋爲3個獨立因素,每個因素有2個等級?

+0

@ZheyuanLi所以你的意思是把它們導入爲'df $ red < - as.numeric(df $ red)'或者類似 – Danib90

回答

2

因此,您在Excel中手動創建三個虛擬列,並且想要將它們導入到R中?如果您稍後將這些列導入爲數字而不是因子,則不會有任何問題。

那麼,我還是要提醒你R可以通過model.matrix()將因子編碼爲虛擬變量。所以從來沒有必要自己做這件事。在excel中使用帶有「紅色」,「藍色」和「黃色」的單個列是絕對可以的,並將其導出到R中作爲因子。

colour <- gl(3,2,labels=c("red","blue","yellow")) 
model.matrix(~ colour - 1) 
# colourred colourblue colouryellow 
#1   1   0   0 
#2   1   0   0 
#3   0   1   0 
#4   0   1   0 
#5   0   0   1 
#6   0   0   1 

又一個快速的問題。使用因子顏色和其他因子變量使用model.matrix - 我怎樣才能將其納入我的模型?當我調用線性模型(例如)lm(response ~ predictor.1 + predictor.2 + colour)時,它會自動調用虛擬變量還是需要將model.matrix分配給矢量?

model.matrix是一個服務例程,用於模型擬合例程像lmglm等。用戶可以簡單地使用一個公式,則模型矩陣將幕後來構造。所以,你甚至不需要自己獲得一個模型矩陣。

對於高級用戶,有時他可能想要使用內部擬合例程lm.fit或甚至.lm.fit。閱讀?lm.fit這些例程。這些程序不接受模型公式,而是模型矩陣X和響應矢量y。在這種情況下,用戶自行負責生成Xy

+0

的問題。對於顏色和其他因子變量使用model.matrix - 我怎樣才能將它融入到我的模型中?當我調用線性模型(例如)'lm(response_redictor.1 + predictor.2 + color)'時,它會自動調用虛擬變量還是需要將model.matrix分配給向量? – Danib90

+0

我剛剛使用'lm'函數作爲例子。我實際上試圖在我的實際數據集中使用虛擬變量進行漸變增強。 – Danib90