我想比较两组受试者 (0,1),但想确保我观察到的差异不是由第三个变量引起的,第三个变量在两组之间存在显着差异。第 1 组比第 0 组小得多,所以我想最好从第 0 组中选择与组间第三个变量最匹配的受试者子集。在一个完美的世界中,我猜想附加组件会从两个组中选择一个子集,该子集将最大化主题数量并匹配组之间的第三个变量。是否有任何附加组件可以帮助我做到这一点。如果没有,你们可能知道通过一些聪明的编码来实现相同目的的有效方法。当然,如果我可以基于多个变量通过一些相似性参数来匹配这些组,那就更好了。
最佳答案
看看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))
关于r - 是否有允许我创建根据一个或多个条件匹配的组的附加组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7754473/