私はあらゆる方法でこのループを処理しようとしましたが、問題を解決するのに役立つ Web サイトはありませんでした。私はRに比較的慣れていないので、コードが間違っている場所でいくつかのガイダンスを使用できます。このシーケンスを 1000 回繰り返すために for ループを実行しようとしています: "lakea" と "lakeb" の 2 つのランダムな数値セットを作成し、2 つのレイクで t 検定を実行し、その t の結果の p 値を保存します。 -空のコンテナ(結果)でのテスト(有意または有意でない)。近づいた気がしますが、何らかの理由でプロセスを繰り返すことができません。
result<-vector("list",1000) #empty container to fill
for(i in 1:1000){
lakea<-rnorm(30,100,15)
lakeb<-rnorm(30,110,15)
pval<-t.test(lakea,lakeb)$p.value #stores pvalues from the t-test
if(pval[i] <= 0.05) result[[i]]<-"stat sig" else #if statement to name output
result[[i]]<-"not sig"
}
result
ループの結果、必要な結果 (「stat sig」または「not sig」) を含む 1 つの実際の結果が得られ、コンテナー内に 999 個の NULL オブジェクトが生成されます。
また、コンテナのコードを次のように変更しようとしました。
result<-vector("character",length(1000))
for(i in length(result)){
...
これにより、同様の結果が得られますが、最初のコードよりも少ない行で 1 つの長いベクトルが作成されます (意図した出力を持つ最初のオブジェクトのみが残ります)。また、コンテナ コードを次のように変更しようとしました。
result<-c(NULL,length(1000))
for(i in result){
...
これにより、「stat sig」または「not sig」の最初の出力が得られますが、他には何もありません。よろしくお願いします。