0
我想創建虛擬變量爲R.幾個不同的欄目,我可以用代碼中的變量殘疾做到這一點:功能爲虛擬變量
Disability <- model.matrix(~ Disability - 1,
transform(Dev_Mod, Disability = factor(paste(Disability, sep = "_"))))
因爲我要運行這個各種變量的代碼多次我寧願爲此創建功能,所以我寫了下面的功能:
dummy_vars <- function(Input1){
output <- model.matrix(~ Input1 - 1,
transform(Dev_Mod, Input1 = factor(paste(Input1, sep = "_"))))
return(output)
}
當我然後運行:
Disability <- dummy_vars("Disability")
我得到錯誤
錯誤
contrasts<-
(*tmp*
,值= contr.funs [1 + ISOF [NN]]):
對比可以只應用於因素有2倍或更多的水平
我已經嘗試了這個多變量,我得到了每個相同的錯誤。
我檢查過,他們肯定有2個或更多的水平,所以我不明白如何修復錯誤。
您必須用公式中的名稱替換Input1。如果你提供一個可重複的例子,我們可以告訴你如何。 – Roland
我以爲這是我在做什麼:殘疾<-dummy_vars(「殘疾」)「殘疾」將是Input1? – MLPNPC
「Disability」只是一個字符串,而不是某個未指定數據框中列的名稱,您的函數對該df一無所知。你可以嘗試使'Input1 = get(「Disability」)'。 (我不確定這是否有效。) –