gpt4 book ai didi

r - 如何在 R 中跨多个独立向量执行成对 t.test?

转载 作者:行者123 更新时间:2023-12-03 15:10:03 25 4
gpt4 key购买 nike

TL;DR 版

我有向量 X1,X2,X3,...Xn。我想测试一下,对于每种可能的向量组合,任何一个向量的平均值是否与任何其他向量的平均值显着不同。我正在寻找一种比运行 n^2 个单独的 t.tests 更好的方法在 R 中做到这一点。

全文

我有一个包含特定 CSA 的人口普查数据的数据框。每行包含特定人口普查区域的每个变量(列)的观测值。

我需要做的是比较不同 MSA 中不同人口普查区域的相同变量的均值。换句话说,我想根据 MSA 指定变量(它是列之一)分解我的 data.frame,然后在每个新分解的 MSA 中成对比较另一个感兴趣变量的均值差异。这本质上是对每个随后的向量进行成对的 t.tests,但我希望以一种比一遍又一遍地编写 t.test(MSAx, MSAy) 更优雅的方式来做到这一点。我怎样才能做到这一点?

最佳答案

下面我的方法比@ashkan 提出的方法的优点是我的方法可以删除重复项。 (即 X1 vs X2 或 X2 vs X1 将出现在结果中,而不是同时出现)

# Generate dummy data
df <- data.frame(matrix(rnorm(100), ncol = 10))
colnames(df) <- paste0("X", 1:10)

# Create combinations of the variables
combinations <- combn(colnames(df),2, simplify = FALSE)

# Do the t.test
results <- lapply(seq_along(combinations), function (n) {
df <- df[,colnames(df) %in% unlist(combinations[n])]
result <- t.test(df[,1], df[,2])
return(result)})

# Rename list for legibility
names(results) <- paste(matrix(unlist(combinations), ncol = 2, byrow = TRUE)[,1], matrix(unlist(combinations), ncol = 2, byrow = TRUE)[,2], sep = " vs. ")

关于r - 如何在 R 中跨多个独立向量执行成对 t.test?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14745379/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com