-1

このコードは正常に機能し、次のような結果が得られました。

dir1 <- list.files("D:thly", "*.bin", full.names = TRUE)
dir2 <- list.files("D:002", "*.envi", full.names = TRUE)
file_tot <- array(dim = c(1440, 720, 11, 2))

resultscor<-apply(file_tot,c(1,2),function(x){cor(x[,1],x[,2],use = "na.or.complete")})

の場合にのみ相関を計算したいと思いP-value is lower than 0.05ます。この関数は仕事をします:

 return_cor = function(x, y)  {
    z = cor.test(x,y)
    if(z[[3]] < 0.05) {
    return(z[[5]])
      } else { 
    return(NA) 
    }
    }

ただし、次のエラーが発生しました。

             Error in cor.test.default(x, y) : not enough finite observations

両方の関数は完全に機能しました。両方の関数を1つの関数にマージして、P値が(特定の値、しきい値)のときに相関を計算し、ペアが3つ未満の場合でも計算を行うにはどうすればよいですか。

4

1 に答える 1

0

質問はあまり明確ではありませんが、

p>0.5の場合にのみ計算を行いたい場合は、

関数を実行する前に、アサーションまたは単純な if を追加できます。

次のようなもの:

 if (IsValid(x,y))
     return function(x,y);
 else
     return NA;

ここで、 isValid は投稿した関数で、x、y が十分に近いかどうかをチェックします。

于 2013-02-21T10:11:53.847 に答える