0
在下面的玩具示例中,我將變量名稱cyl
轉換爲1_cyl。我這樣做是因爲在我的實際數據中有一些以數字開頭的變量。我正在使用randomForest使用該公式,但我得到如下所示的錯誤。我發現其他功能可以用相同的公式完美工作。如何處理以randomForest中的數字開頭的變量名稱包
我該如何解決這個問題?
data(mtcars)
colnames(mtcars)[2] = '1_cyl'
colnames(mtcars)
#[1] "mpg" "1_cyl" "disp" "hp" "drat" "wt" "qsec" "vs" "am" "gear" "carb" ]
(fmla <- as.formula(paste("mpg ~ `1_cyl`+hp ")))
randomForest(fmla, dat=mtcars,importance=T,na.action=na.exclude)
#> randomForest(fmla, dat=mtcars,importance=T,na.action=na.exclude)
#Error in eval(expr, envir, enclos) : object '1_cyl' not found
#Another functions works!!!
rpart(fmla, dat=mtcars)
glm (fmla, dat=mtcars)
我沒有看到一個令人信服的理由,爲什麼變量名稱必須以數字開頭。文件閱讀功能在清理名稱方面做得很好,而不是這樣做只是在尋求麻煩。 – Roland
你的選擇是(1)不要使用randomForest的公式接口,或者(2)不要使用那樣的變量名稱。由於你的變量名違反了R的名字語法,所以沒有理由期待任何函數來尊重它們(即使其他人會這樣做)。 – joran