-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

这两个函数都工作得很好。我们如何将两个函数合并为一个函数,以便在 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 回答