我们可以在相关计算中将两个函数合并为一个吗?

时间:2013-02-21 09:56:55

标签: r correlation

此代码工作正常,我得到的结果如下:

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对也进行计算。

1 个答案:

答案 0 :(得分:0)

问题不是很清楚,

如果你想仅在p> 0.5,

的情况下进行计算

你可以在执行函数之前添加一个断言或一个简单的断言:

有些人喜欢:

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

其中isValid是您发布的函数,用于检查x,y是否足够接近您。