2

Zelig Packageでの後続のモデリングのために、一致したデータセット ( MatchIt Packageを使用して、観測が傾向スコアで一致している場合) のリストを取得したいと考えています。

この例では、(t1t2)、2 つの独立変数 (x1x2)、および結果 ( y1) で照合する 2 つの処理があります。

library(Zelig)
library(MatchIt)
library(plyr)

d1 <- data.frame(y1 = rbinom(100, 1, .5),
                 x1 = runif(100),
                 x2 = runif(100),
                 t1 = rbinom(100, 1, .5),
                 t2 = rbinom(100, 1, .5))

まず、一致するデータ フレームのリストを作成します。

list.dfs <- llply(c("t1", "t2"), 
                  function(i) 
                  matchit(as.formula(paste0(i, "~ x1 + x2")), data= d1))

の各要素にlist.dfsは適切なクラスがあります。

class(list.dfs[[1]])

[1] "matchit"

次に、このリストから要素が一致するデータ フレームを取得し、Zelig モデル オブジェクトのリストを作成します。

list.mods <- llply(list.dfs, 
                   function(i) 
                   zelig(y1 ~ x1 + x2, model = "logit", data = match.data(i)))

次のエラーが発生します。

Error in match.data(i) : object 'i' not found

しかし、これは明らかにリストと関係があります。同じ関数を の単一の要素に実行するとすべてが機能するためですlist.dfs

class(zelig(y1 ~ x1 + x2, model = "logit", data = match.data(list.dfs[[1]])))

[1] "zelig" "logit"

私は何が欠けていますか?このリストの個別の項目で Zelig に作業させるにはどうすればよいですか?

4

1 に答える 1