前提・実現したいこと
R言語上での自動多重検定の実施。
7群の正規性を確認するためにShapiro-Wilk 検定を使って各群を検定したいです。
しかし、ひとつひとつ検定するととても時間がかかるのでfor文などを利用して一度にすべての群間を検定したいと考えています。
発生している問題・
他の言語の場合、群のデータを一次元配列に入れてfor文で各群ごとに代入すれば済む話です。
しかし、R言語の場合そのやり方では難しいようなのでどうかければよいのかを教えて下さい。
コードを貼って示して頂けるとありがたいです。
該当のソースコード
R言語
1#各群のデータ 2v1=c(6.22916667,3.2675,3.47333333,2.91,5.9425,4.99916667,7.8775,5.975,6.13666667) 3v2=c(4.7025,4.42916667,3.19833333,2.92,5.1425,5.1775,6.03333333,5.4175,5.51583333) 4v3=c(4.17916667,3.87583333,3.15333333,3.28916667,5.33166667,4.08583333,5.97416667,4.81416667,7.11833333) 5v4=c(5.06416667,3.53083333,4.28833333,3.99583333,5.32666667,4.40916667,5.99666667,5.83333333,5.8825) 6v5=c(5.9625,4.0575,3.97166667,3.535,5.62333333,4.18333333,6.37833333,5.7075,5.38666667) 7v6=c(5.48666667,4.64166667,4.61583333,4.10833333,4.6875,4.315,6.58666667,4.98833333,5.715) 8v7=c(6.195,5.01,4.7,5.18416667,5.22416667,4.43916667,7.5625,6.925,5.72166667) 9 10#Shapiro-Wilk検定 11#xとyにはv1やv2などの各群の変数名が代入される 12shapiro.test(sort(x)-sort(y)) 13
###エラーメッセージ
Error in sort(x) - sort(y) : non-numeric argument to binary operator
試したこと
R言語
1#各群のデータ 2#Shapiro-Wilk 検定(正規性検定) 3v1=c(6.22916667,3.2675,3.47333333,2.91,5.9425,4.99916667,7.8775,5.975,6.13666667) 4v2=c(4.7025,4.42916667,3.19833333,2.92,5.1425,5.1775,6.03333333,5.4175,5.51583333) 5v3=c(4.17916667,3.87583333,3.15333333,3.28916667,5.33166667,4.08583333,5.97416667,4.81416667,7.11833333) 6v4=c(5.06416667,3.53083333,4.28833333,3.99583333,5.32666667,4.40916667,5.99666667,5.83333333,5.8825) 7v5=c(5.9625,4.0575,3.97166667,3.535,5.62333333,4.18333333,6.37833333,5.7075,5.38666667) 8v6=c(5.48666667,4.64166667,4.61583333,4.10833333,4.6875,4.315,6.58666667,4.98833333,5.715) 9v7=c(6.195,5.01,4.7,5.18416667,5.22416667,4.43916667,7.5625,6.925,5.72166667) 10 11#代入処理 12for (i in 1:7) { 13 for (j in 1:7) { 14 x <- paste("v",i) 15 y <- paste("v",j) 16 shapiro.test(sort(x)-sort(y)) 17 } 18}
補足情報(FW/ツールのバージョンなど)
R Studio
R言語
回答1件
あなたの回答
tips
プレビュー