看看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