从火星上的evimp中提取返回值,earth r package

时间:2018-05-12 22:42:44

标签: r

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

1 个答案:

答案 0 :(得分:1)

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