我設法在其中對於每個葉節點有規則數據幀從單可變rpart
模型獲得輸出施加一路到行中的根節點:獲取規則表中特定格式
x <- read.table(header=T, sep="", stringsAsFactors = FALSE,text="
id number operator rule
1 8.5 >= 4
2 14.5 >= 4
3 8.5 >= 10
4 14.5 < 10
5 9.5 < 10
6 8.5 >= 22
7 14.5 < 22
8 9.5 >= 22
9 12.5 >= 22
10 8.5 >= 46
11 14.5 < 46
12 9.5 >= 46
13 12.5 < 46
14 11.5 < 46
15 8.5 >= 47
16 14.5 < 47
17 9.5 >= 47
18 12.5 < 47
19 11.5 >= 47
20 8.5 < 6
21 4 < 6
22 8.5 < 7
23 4 >= 7
")
規則由rule
標識(例如,具有rule==22
的所有行構成一個規則)。現在,我想變換這樣的方式這個數據,我有按規則一行:
rule minOperator maxOperator minValue maxValue
4 >= NA 14.5 Inf
10 >= < 8.5 9.5
22 >= < 12.5 14.5
46 >= < 9.5 11.5
47 >= < 11.5 12.5
6 NA < -Inf 4
7 >= < 4 8.5
我看到的算法是這樣的:
- 爲每個規則
minOperator
和minValue
=對於運營商有最大價值的行>
或>=
maxOperator
和maxValue
=有最小值的行對於運營商<
imum價值或<=
,但找不出如何做到這一點很容易在R.
是你的樣品結果按照您的描述準確嗎?您描述minOperator和minValue,以便我們查看子集(x,規則== 47和%c(「<」,「<=」))中的運算符%(對於規則47),但這些值分別爲14.5和12.5,但你的最小值爲11.5。你可以仔細檢查你的例子嗎? – MrFlick
@MrFlick對不起,我在描述中轉換了兩邊。對於規則47和'minOperator',我們正在尋找最大值,其中運算符是'>'或'> =',這是11.5 –