1

私はプログラミング (つまり、ループと 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
4

3 に答える 3