【发布时间】:2014-05-28 20:10:32
【问题描述】:
我想使用 R 包 plyr 在一个非常大的数据框上运行成对 t 检验,但我不知道该怎么做。我最近学习了如何使用 plyr 进行相关性,我非常喜欢您如何指定要比较的组,然后 plyr 为您分解数据。例如,您可以让 plyr 计算 iris 数据集中每种鸢尾花的萼片长度和萼片宽度之间的相关性,如下所示:
Correlations <- ddply(iris, "Species", function(x) cor(x$Sepal.Length, x$Sepal.Width))
我可以自己分解数据框,指定鸢尾花品种的数据在 1:50 行中,依此类推,但 plyr 不太可能搞砸例如,不小心说出了第 1:51 行。
那么我该如何使用配对 t 检验做类似的事情呢?我如何指定哪些观察是成对的?这是一些与我正在使用的数据相似的示例数据,我希望这些对成为主题,并且我想按 Pesticide 分解数据:
Exposure <- data.frame("Subject" = rep(1:4, 6),
"Season" = rep(c(rep("summer", 4), rep("winter", 4)),3),
"Pesticide" = rep(c("atrazine", "metolachlor", "chlorpyrifos"), each=8),
"Exposure" = sample(1:100, size=24))
Exposure$Subject <- as.factor(Exposure$Subject)
换句话说,我想评估的问题是,每个人在冬季和夏季的农药接触量是否存在差异,我想分别针对这三个问题分别回答这个问题杀虫剂。
提前非常感谢!
编辑:澄清一下,这是如何在 plyr 中进行非配对 t 检验:
TTests <- dlply(Exposure, "Pesticide", function(x) t.test(x$Exposure ~ x$Season))
如果我在其中添加“paired=T”,plyr 将进行配对 t 检验,但它假定我总是以相同的顺序排列配对。虽然在上面的示例数据框中我确实以相同的顺序将它们全部保存,但我没有在我的真实数据中,因为我有时会丢失数据。
【问题讨论】:
标签: r plyr hypothesis-test