我在Rpart包中使用NA功能而掙扎。我得到了下面的數據幀(代碼如下)Rpart - NA處理
Outcome VarA VarB
1 1 1 0
2 1 1 1
3 1 NA 1
4 0 0 1
5 0 0 0
6 0 NA 0
我想要適合做出完美預測的Rpart對象。邏輯規則應該是它預測:
- 如果翻= 1,預測= 1
- 如果翻= 0,預測= 0
- 如果翻= NA,然後VarB被使用(如果VarB = 0,預測= 0)
但是,我正在努力找到正確的代碼,以正確的方式向樹中的VarA傳遞「NA值」。我曾嘗試使用usesurrogates
和na.control
,但無濟於事......請在下面找到我的代碼。
PS。該軟件rpart工作,如果瓦拉會讀VarA=c(1,1,2,0,0,2)
但不幸的是這不是我的工作在更大的數據幀的絕佳解決方案....
library(rpart)
Outcome=c(1,1,1,0,0,0)
VarA=c(1,1,NA,0,0,NA)
VarB=c(0,1,1,1,0,0)
dg=as.data.frame(cbind(Outcome, VarA, VarB))
dg
fit=rpart(Outcome ~ VarA + VarB, data=dg, method="class",na.action = na.pass,control=rpart.control(usesurrogate=1, minsplit=1, cp=0.001))
fit
newdata=dg
newpred=predict(fit,newdata=newdata,type = "class")
dh=cbind(dg,newpred)
dh