Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 是否有一个附加组件允许我创建根据一个或多个条件匹配的组?_R_Match - Fatal编程技术网

R 是否有一个附加组件允许我创建根据一个或多个条件匹配的组?

R 是否有一个附加组件允许我创建根据一个或多个条件匹配的组?,r,match,R,Match,我想比较两组受试者(0,1),但要确保我观察到的差异不是由于第三个变量造成的,这两组之间存在显著差异。第1组比第0组小得多,所以我想最好从第0组中选择一个最匹配组间第三个变量的受试者子集。在一个完美的世界里,我猜这个插件会从两个组中选择一个子集,既能最大化受试者的数量,又能匹配组间的第三个变量。是否有任何附加组件可以帮助我做到这一点。如果不是,你们可能知道通过一些巧妙的编码来实现同样的目的的有效方法。当然,如果我能根据大量变量在一些相似性参数上匹配这些组,那就更好了。看看采样包。我相信这是做这类

我想比较两组受试者(0,1),但要确保我观察到的差异不是由于第三个变量造成的,这两组之间存在显著差异。第1组比第0组小得多,所以我想最好从第0组中选择一个最匹配组间第三个变量的受试者子集。在一个完美的世界里,我猜这个插件会从两个组中选择一个子集,既能最大化受试者的数量,又能匹配组间的第三个变量。是否有任何附加组件可以帮助我做到这一点。如果不是,你们可能知道通过一些巧妙的编码来实现同样的目的的有效方法。当然,如果我能根据大量变量在一些相似性参数上匹配这些组,那就更好了。

看看
采样
包。我相信这是做这类事情最具特色的。无论如何,这里有一个成功的例子:

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软件包应该能让你达到目的。我不清楚:这在哪些方面是一个糟糕的问题?从统计学的角度来看,它的措辞并不特别巧妙,但它似乎与SO比statistics.SE更相关。另一方面,无论措辞如何,这篇文章都没有太多关于示例数据和统计目标的细节。迈克:你最好先把注意力集中在统计问题上,关于统计学;您也可以在那里解决软件包问题。