私は非常に複雑なS4オブジェクト(lavaanモデルの出力)を持っています。このオブジェクトは、スロット内のスロット内にスロットを持ち、最も深い各スロットの最も深いレベルに変数($
)を持っています。このオブジェクト内のすべての要素のobject.size
(および可能であればlength
とdim
のような他の関数とオブジェクト名)を抽出して格納するには、同じクラスの別のオブジェクトと比較できるようにするにはどうすればよいですか?複雑なオブジェクトの要素を要約する方法は?
私はstr(obj)
とからの出力を保存して、私が欲しい情報を抽出するために、出力を操作しようとしたが、非常に面倒であることが判明回しています。名前をループすることも同様に困難です。オブジェクトをリストに「平坦化」する方法はありますか?誰もが各スロットを繰り返し掘り下げると考えることができる再帰関数はありますか?ここを編集
は、理想的解決策は、特定のオブジェクトのクラスに依存すべきではないとクラス全体で仕事ができるのに、私は上記参照lavaan
パッケージを使用して、例を示します
library(lavaan)
model <- '
# measurement model
ind60 =~ x1 + x2 + x3
dem60 =~ y1 + y2 + y3 + y4
dem65 =~ y5 + y6 + y7 + y8
# regressions
dem60 ~ ind60
dem65 ~ ind60 + dem60
# residual correlations
y1 ~~ y5
y2 ~~ y4 + y6
y3 ~~ y7
y4 ~~ y8
y6 ~~ y8
'
fit <- sem(model, data=PoliticalDemocracy)
オブジェクトfit
には、内部に多数のスロットとオブジェクトが含まれています。私は、もちろん、object.size([email protected]@X[[1]])
のような特定の要素から情報を抽出することができますが、私は一般化された解決策を探しています。課題は、「深さ」に関係なく、各要素について同じ情報を抽出したいということです。
ありがとうございます!あなたが簡単に深くネストされたリストからのものを抽出することができ、入力として文字ベクトルと組み合わせる -
サンプルデータがないとコメントするのは難しいですが、あなたはラップリーを見ましたか? –
サンプルデータは、対応するパッケージのサンプルから簡単に入手できます。実際の質問は、どのスロットが@DMPに興味があるのですか? – davidski
便利な機能を紹介しようとしていましたが、私の答えは明白な理由なしに下降しています。あなたがオブジェクトから興味を持っているスロットを正確に投稿することができれば、私はあなたが望むものを抽出するこれらの関数を使っていくつかのコードを投稿しています。 – davidski