看看sampling
包。我相信這是做這些事情最全面的特色。無論如何,這裏是一個工作的例子:
require(sampling)
set.seed(12345)
# Set number of subjects
n = 1000
# Generate data
group = factor(sample(c(0,0,1), n, replace=T))
x = 0.2 * as.numeric(group) + rnorm(n)
data = data.frame(group, x)
# Demonstrate the significant group effect
summary(lm(x ~ group, data=data))
# Let's say we want a sample with 50 subjects in each group
pik = inclusionprobastrata(as.numeric(data$group), c(50, 50))
picks = balancedstratification(cbind(data$x), as.numeric(data$group), pik)
# Pick out our balanced sample
new.data = data[picks==1, ]
# Demonstrate that the group effect is gone
summary(lm(x ~ group, data=new.data))
@romunov指出,matchit軟件包應該讓你在那裏。 –
我不清楚:這是一個壞問題在哪些方面?從統計的角度來看,它的表達方式並不是特別熟練,但它似乎與統計學相比更加相關。另一方面,這並沒有很多關於示例數據和統計目標的細節,不管措辭如何。邁克:最好先統計一下統計問題,然後統計一下。您也可以在那裏解決軟件包問題。 – Iterator