我是编程新手(即循环和 if-else 语句),但对 R 中的统计数据并不陌生。
我有大约 16 个特征要在 5 个不同人群中的男性和女性之间进行比较,因此是 5x16 比较。我首先要检查男性和女性特征方差是否相等(var.test),然后使用此信息来确定 t.test 函数的正确版本(var = T 或 var = F)。我正在尝试编写一个循环来自动化这个过程。
我写了一个有效的 if-else 语句:
if ((var.test(male$mass,female$mass)$p.value < 0.05) == "TRUE") {
t.test(male$mass,female$mass, var = F)
} else
t.test(male$mass,female$mass, var = T)
但我似乎无法弄清楚如何将其应用于我的所有特征。
我不想使用两个嵌套的 for 语句:
for (i in c(male$trait1, male$trait2,...)) {
for (j in c(female$trait1, female$trait2,...)) {
...
}
}
因为这会创建一个矩阵,对所有特征组合执行 var.test 和 t.test 。然而,我只希望每个特征的男性和女性版本配对。
这是我的数据格式。我制作了两个数据子集(男性和女性):
head(male)
id location gens log.gens sex mass head cbl
49 Hawaii 268 2.428135 M 583.86 78.648 65.54
27 Hawaii 268 2.428135 M 692.30 83.604 69.67
33 Hawaii 268 2.428135 M 647.70 81.180 67.65
34 Hawaii 268 2.428135 M 704.70 84.720 70.60
35 Hawaii 268 2.428135 M 604.90 82.440 68.70