私はプログラミング (つまり、ループと if-else ステートメント) は初めてですが、R の統計は初めてではありません。
5 つの異なる集団内の男性と女性の間で比較したい約 16 の特性があるため、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)
しかし、これを私のすべての特性に適用する方法を理解できないようです.
ネストされた 2 つの for ステートメントを使用したくありません。
for (i in c(male$trait1, male$trait2,...)) {
for (j in c(female$trait1, female$trait2,...)) {
...
}
}
これは、特性のすべての組み合わせに対して var.test および t.test を実行するマトリックスを作成するためです。一方、各特性の男性と女性のバージョンのみをペアにしたい.
これが私のデータの形式です。データの 2 つのサブセット (男性と女性) を作成しました。
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