2

約 11,500 行と 15 因子のデータセットがあります。重要な数の欠損値を持つ因子は 2 つだけで、3 つの因子の値を代入するだけで済みます。マウスを使用して帰属データセットを作成しようとしており、次のコードを使用しています。

dataset<-read.csv("filename.csv",header=TRUE)

model<-success~1+course+medium+ethnicity+gender+age+enrollment+HSGPA+GPA+Pell+ethnicity*medium

library(mice)

vempty<-c(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
v12<-c(0,0,0,0,0,0,0,1,1,1,1,0,1,1,1)
v13<-c(0,0,0,0,0,0,0,1,1,1,1,1,0,1,1)
v14<-c(0,0,0,0,0,0,0,1,1,1,1,1,1,0,1)
list<-list(vempty,vempty,vempty,vempty,vempty,vempty,vempty,vempty,vempty,vempty,vempty,v12,v13,v14,vempty)
predmatrix<-do.call(rbind,list)


MIdataset<-mice(dataset,m=2,predictorMatrix=predmatrix)
MIoutput<- pool(glm(model, data=MIdataset, family=binomial))

このコードの後に​​、次のエラー メッセージが表示されます。

as.data.frame.default(data) のエラー: クラス '"mids"' を data.frame に強制できません

これが何を意味するのか、私は完全に途方に暮れています。欠落しているデータを削除し、通常の glm を使用するだけで、この同じ分析を行うのに問題はありませんでした。また、lmer を使用して帰属データセットに対してマルチレベル ロジスティック モデルを実行したいと考えています (これは、これを glm で動作させた後の次のステップです)。知っておくと良いでしょう。このエラーをインターネットで検索しようとしましたが、どこにも行きません。私はちょうど本当に R を学んでいるので、環境にもまだあまり慣れていません。

御時間ありがとうございます!

4

1 に答える 1

2

関数を適用する必要がありwith.midsます。コードの最後の行は次のようになるはずです。

pool(with(MIdataset, glm(formula(model), family = binomial)))

これを試すこともできます:

expr <- 'glm(success ~ course, family = binomial)'
pool(with(MIdataset, parse(text = expr)))
于 2013-06-19T16:44:44.063 に答える