を変更します。具体的には、私はこのようなコードを持っている:保存モデル(例えば、LM)は、私がリストにLMモデルを格納し、その結果を抽出するために、特定のモデルにアクセスするために、ループを使用したいのですそのクラス
model1 <- lm(dv ~ group,data=df,na.action=na.omit)
model2 <- lm(dv ~ cov + group,data=df,na.action=na.omit)
model3 <- lm(dv ~ group,data=df_out,na.action=na.omit)
model4 <- lm(dv ~ cov + group,data=df_out,na.action=na.omit)
lom <- list(main=model1,main_cov=model2,main_out=model3, main_cov_out=model4)
for (x in c(1:length(lom))) {
for (y in c(1:length(lom[[x]]))) {
modl <- lolom[[x]][y]
class(modl) <- "lm"
anov <- Anova(modl,type="II") # (from Car package)
} # (y in c(1:length(lom[[x]])))
} # (x in c(1:length(lom)))
をこのエラーが出る... terms.defaultで
エラー(オブジェクト):加えていない用語のコンポーネントや属性 :警告メッセージ: ではあります.n(coef(mod)): is.n()タイプ 'NULL'の非(リストまたはベクトル)に適用
私は "modl"のクラスをチェックしました。 Anovaがlmオブジェクトに含まれるすべての関連情報にアクセスできるようになることを望むクラスを変更するが、役に立たない。名前を確認し、modlオブジェクトのさまざまなレベルにアクセスすることで、オブジェクト全体がリストに実際に格納されていることが分かりました(たとえば、modl $ model)。
はありがとうございます。私が二重埋め込み式のラップに従うのは難しいですが、この反応は私のために物事を開いてくれました。具体的には、最終的にループの代わりにどのようにlapplyを使うべきかを知っており、私にとって可能な動的コーディングのレベルが一桁増加しました。 – dmac
私は何も忘れてしまったのですが、実際にlist()を呼び出すときにオブジェクトのモードが変更された理由についての質問に実際には触れませんか? – WillZ