我的工作区中有一系列对象存储一些统计模型的结果。称它们为“model1”、“model2”等。这些模型中的每一个都附加了相同的命名元素集,例如 $coef。我想从包含字符串“model”的所有对象中提取存储在特定元素中的值到列表或向量中。
在命令行输入的以下代码可以满足我的要求:
unlist(lapply(parse(text = paste0(ls()[grep("model", ls() )], "$", "coef")), eval))
由此,我创建了以下通用函数:
get.elements <- function(object, element) {
unlist(lapply(parse(text = paste0(ls()[grep(object, ls() )], "$", element)), eval))
}
但是,当我运行此函数时,出现以下错误:
Error in parse(text = paste0(ls()[grep(object, ls() )], "$", element)) :
<text>:1:1: unexpected '$'
1: $
^
Q1。为什么从命令行运行此代码而不是作为函数运行时可以工作,更重要的是,我该如何修复它?
Q2。更好的是,有没有更简单的方法可以完成同样的事情?对于统计学家和模拟建模师来说,这似乎是一项常见的任务,我希望基本包中有某种命令,但我一直找不到任何东西。肯定有比我笨重的方法更优雅的方法来做到这一点。
感谢所有帮助。
——戴夫