Я думаю, что второй вариант имеет больше смысла,
Возможно, вы захотите использовать функцию rcorr в пакете Hmisc.
Это очень быстро и включает только попарно полные наблюдения.
Возвращаемый объект содержит матрицу
- баллов корреляции
- с количеством наблюдений, используемых для каждого значения корреляции
- р-значения для каждой корреляции
Это означает, что вы можете игнорировать значения корреляции, основываясь на небольшом количестве наблюдений (независимо от того, какой для вас этот порог) или на основе значения p.
library(Hmisc)
x<-matrix(nrow=10,ncol=10,data=runif(100))
x[x>0.5]<-NA
result<-rcorr(x)
result$r[result$n<5]<-0 # ignore less than five observations
result$r