问题描述
我正在使用relaimpo软件包来获取线性模型中变量的相对重要性。函数calc.relimp()
使用几种可能的方法计算相对重要性。我想比较在我使用的数据集上使用每种方法的结果。
calc.relimp()
函数返回一个S4对象。为了仅访问相对重要性列表,我将函数的输出保存到变量名rel.imp <- calc.relimp(blah)
中。在我认为是S4对象的属性下列出了重要性,该属性与所使用的计算方法同名。因此,如果使用“ lmg”方法,则可以使用rel.imp$lmg
获得使用该方法计算出的变量重要性。
我遇到的问题是当我尝试使用for循环使用每种方法比较结果来计算重要性时。见下文:
library(relaimpo)
types <- c("lmg","last","first","betasq","pratt","genizi","car")
for (tp in types) {
rel.imp <- calc.relimp(model,type = tp,rela = T)
print(rel.imp$tp)
}
此循环在第一次迭代期间返回以下错误:Error in h(simpleError(msg,call)) : error in evaluating the argument 'x' in selecting a method for function 'print': no slot of name "tp" for this object of class "relimplm"
相对于relimplm对象进行引用时,每次应为不同字符串的字符串,即“ lmg”,“ last”等,按字面值评估为“ tp”,即向量中每个字符串的抽象名称我正在尝试迭代。
如果我使用的是数据框,但没有用,我将尝试使用dplyr中的select()
。但是对象不能被强制转换为数据框,因此我必须找到另一种数据类型将其转换为或学习如何在for循环中使用S4对象。我想要的是使用每种方法的相对重要性列表。实现该结果的最佳方法是什么?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)