いくつかの統計モデルの結果をワークスペースに保存する一連のオブジェクトがあります。それらを「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。さらに良いことに、同じことを達成するより簡単な方法はありますか?これは、統計家やシミュレーションモデラーにとって非常に一般的なタスクのように思われるため、基本パッケージに何らかのコマンドが含まれていると思いますが、何も見つかりませんでした。確かに、これを行うには、私の面倒な方法よりもエレガントな方法があるはずです。
すべての助けをありがとう。
-デイブ