此代码工作正常,我得到的结果如下:
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对也进行计算。
答案 0 :(得分:0)
问题不是很清楚,
如果你想仅在p> 0.5,
的情况下进行计算你可以在执行函数之前添加一个断言或一个简单的断言:
有些人喜欢: if (IsValid(x,y))
return function(x,y);
else
return NA;
其中isValid是您发布的函数,用于检查x,y是否足够接近您。