0

オブジェクトからデータを抽出するための、それほど複雑でない方法を見つけようとしていaovます。以下に示すようなデータセットがありa、そのデータに基づいてANOVAを実行した結果、という名前のオブジェクトが作成されたとしますa.model。を使用してデータを検索しようとしましたstr(a.model)が、見つかりませんでした。lmオブジェクトからデータを抽出する方法を知っているので、私が行ったことはlm(a.model)$model$score、を使用することでした。しかし、最初にオブジェクトをオブジェクトにa.model変換せずに、から直接データを抽出することは可能ですか?-変換の「余分な」ステップはそれほど多くの作業ではないため、これは何よりも好奇心から外れていると思います。aovlm

a=data.frame(factor1 = rep(letters[1:2], each=10), 
             factor2 = rep(letters[c(1,2,1,2)], each=5), 
             score=sort(rlnorm(20)))
a.model = aov(score~factor1*factor2, data=a)
4

1 に答える 1

1

からの出力には、データを含むaovというコンポーネントもあります。と同じです。modela.model$model$scorelm(a.model)$model$score

関数namesは便利です:

> names(a.model)
 [1] "coefficients"  "residuals"    
 [3] "effects"       "rank"         
 [5] "fitted.values" "assign"       
 [7] "qr"            "df.residual"  
 [9] "contrasts"     "xlevels"      
[11] "call"          "terms"        
[13] "model"

おそらくより便利で、より一般的な場合に機能する別の方法は、関数を使用することmodel.matrixmodel.frameあり、数式で使用される設計行列とモデル全体を提供します。2番目の例(コメント内)ではmodel.frame、データを取得するために使用できます。

于 2013-02-26T20:25:56.877 に答える