我构建了一个rpart树模型,现在我想从一个大的预测数据帧(超过7.000个变量)中提取出这个模型中使用的变量,因为我必须在预测之前对这个预测数据帧进行一些计算,这个计算超出了记忆。
现在我不知道如何从rpart模型中提取变量。对于randomForest模型,有函数varUsed,但是问题可能会以一般方式清除,因此对于glm模型也是如此。
rpart-Model上的names()返回:
"frame" "where" "call" "terms" "cptable" "splits" "method"
"parms" "control" "functions" "model" "y" "ordered"
分割值返回:
count ncat improve index adj
**m24_a_ec_fakt** 6000 -1 0.026346646 0.15 0.00000000
**m24_a_ec_fakt_dwl** 6000 -1 0.026346646 0.15 0.00000000
**m3_a_fak_rech** 6000 -1 0.022821246 0.30 0.00000000
**m9_a_ec_fakt** 6000 -1 0.021599372 0.05 0.00000000
**m9_a_ec_fakt_dwl** 6000 -1 0.021599372 0.05 0.00000000
...
split是一个矩阵,第一列(?)是变量名。
我能否以某种方式引用此矩阵来按名称过滤我的预测数据帧的变量?
类似的东西:
newPredDM<- oldPredDM[ --GET THE VARIABLE NAMES FROM rpart-Modell somehow-- ]
问候和thnx寻求帮助, 赖
答案 0 :(得分:0)
请参阅help("rpart.object")
了解返回值的结构。由于
frame:一行数据框 树中的每个节点。 [...]元素 'frame'包括'var',一个因子 给出拆分中使用的变量 在每个节点
您可以使用levels(fit$frame$var)[-1]
将列作为字符串向量来使用,并使用类似
newPredDM<- oldPredDM[, levels(fit$frame$var)[-1]]
供您选择。
希望这有帮助。