首页 > 解决方案 > 从 mars, earth r 包中的 evimp 中提取返回值

问题描述

R 中的 Earth 包:您好,我正在运行一个循环以从我的主数据库中提取 1000 个数据子集,并运行一系列基于 MARS 的测试,然后我将其总结在一个 df 中。我想提取对每次运行的输入变量重要性进行排名的 evimp 返回值(rows=variable name,cols=#subsets,GCV,RSS)。但是,我无法将这些值提取或添加到数据框中,因为它是一个“evimp”类。如何提取这些值并将它们放入表中?

标签: r

解决方案


该 evimp 类确实使获取数据变得更加困难,但unclass会将其转换为您可以处理的矩阵。

例子:

library(earth)

data(ozone1)
earth.mod <- earth(O3 ~ ., data=ozone1, degree=2)
ev <- evimp(earth.mod, trim=FALSE)

evdf = as.data.frame(unclass(ev[,c(3,4,6)]))
evdf
         nsubsets        gcv       rss
temp           11 100.000000 100.00000
humidity        9  35.667541  38.88609
ibt             7  31.618413  33.98691
doy             7  31.618413  33.98691
ibh             6  33.432738  36.02932
dpg             6  27.452997  29.75686
vis             5  21.426773  24.09804
wind            2  10.263603  12.59467
vh              1   5.324573   7.65049

推荐阅读