2016-06-12 18 views
1

私はパネルデータを持っており、傾向スコアマッチングを適用しています。私はCBPSパッケージで次のコードを使用してフルサンプルのモデルを推定しました。モデルを繰り返し実行する方法

form1 <- (treat ~ X) 
fit <- CBPS(formula=form1, data = paper1, time=year, id= bankid, ATT = TRUE) 

今年は別々にマッチしたいと思っています。この目的のためにif条件を使用しています。次のコードを実行しました。

if (year==2001){ 
m.out1 <- matchit(t1 ~ fitted(fit), method = "nearest", data = paper1, replace = TRUE) 
} 

ただし、以下の警告が生成されます。

警告メッセージ: であれば(年== 2001){: 条件は長さ> 1のみ最初の要素は、私は、所望のタスクを実行する方法

使用されるであろうか?

私はBlackwellデータセットの問題を再現しました。完全なコードは以下の通りです。 - データIDに時間IDがあります。私は時間が1に等しい場合にマッチしたい。私は完全なサンプルでモデルを実行した。

library(CBPS) 
data("Blackwell") 
attach(Blackwell) 
form1<-"d.gone.neg ~ d.gone.neg.l1 + d.gone.neg.l2 + d.neg.frac.l3 + camp.length + camp.length + deminc + base.poll + year.2002 + year.2004 + year.2006 + base.und + office" 
fit <- CBPS(formula=form1, data = Blackwell, time=time, id= demName, ATT = TRUE) 
m.out <- matchit(d.gone.neg ~ fitted(fit), method = "nearest", data = Blackwell, replace = TRUE) 
summary(m.out) 
if (time==1){ 
m.out1 <- matchit(d.gone.neg ~ fitted(fit), method = "nearest", data = Blackwell, replace = TRUE) 
} 
+0

を使用する有し、これをチェックしてくださいhttp://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example –

+0

私は再現可能なコード@ Hack-Rを提供しました。私は自分の投稿に別の答えで提供しました。あなたの応答を探しています。 –

+0

恐ろしい!ありがとう。答えのセクションから元の質問に戻してください。私は今仕事中ですが、できるだけ早く手伝っていきます。 –

答えて

0

私はBlackwellデータセットの問題を再現しました。完全なコードを以下に示します。 - データセットに時間IDがあります。私は時間が1に等しい場合にマッチしたい。私は完全なサンプルでモデルを実行した。

library(CBPS) 
data("Blackwell") 
attach(Blackwell) 
form1<-"d.gone.neg ~ d.gone.neg.l1 + d.gone.neg.l2 + d.neg.frac.l3 + camp.length + camp.length + deminc + base.poll + year.2002 + year.2004 + year.2006 + base.und + office" 
fit <- CBPS(formula=form1, data = Blackwell, time=time, id= demName, ATT = TRUE) 
m.out <- matchit(d.gone.neg ~ fitted(fit), method = "nearest", data = Blackwell, replace = TRUE) 
summary(m.out) 
if (time==1){ 
m.out1 <- matchit(d.gone.neg ~ fitted(fit), method = "nearest", data = Blackwell, replace = TRUE) 
} 

警告メッセージ:(時間== 1)であればにおいて {: 条件は、長さ> 1と最初の要素だけが

1
if (!require("pacman")) install.packages("pacman") 

pacman::p_load(CBPS, RRF) 
data("Blackwell") 
attach(Blackwell) 

Blackwell$year <- NA 
Blackwell$year[Blackwell$year.2002 == 1] <- 2002 
Blackwell$year[Blackwell$year.2004 == 1] <- 2004 
Blackwell$year[Blackwell$year.2006 == 1] <- 2006 
Blackwell$year.2002 <- NULL 
Blackwell$year.2004 <- NULL 
Blackwell$year.2006 <- NULL 

Blackwell <- na.roughfix(Blackwell) 

form1<-"d.gone.neg ~ d.gone.neg.l1 + d.gone.neg.l2 + d.neg.frac.l3 + camp.length + camp.length + deminc + base.poll + year.2002 + year.2004 + year.2006 + base.und + office" 
fit <- CBPS(formula=form1, data = Blackwell, time=time, id= demName, ATT = TRUE) 
m.out <- matchit(d.gone.neg ~ fitted(fit), method = "nearest", data = Blackwell, replace = TRUE) 
summary(m.out) 


m.out1 <- list() 
n  <- 0 

for(i in unique(Blackwell$year)){ 
    n  <- n+1 
    tmp <- matchit(d.gone.neg ~ fitted(fit)[Blackwell$year == i], method = "nearest", data = Blackwell[Blackwell$year == i,], replace = TRUE) 
    nam <- paste("matchit_", i, sep = "") 
    assign(nam, tmp) 
} 
+0

ありがとうございます。これらのコードを特定のデータに複製できることを願っています。 –

関連する問題