В настоящее время я работаю с большой матрицей (4 строки и около 8000 строк).
Я хочу выполнить корреляционный анализ, используя коэффициент корреляции Пирсона между различными строками, составляющими эту матрицу.
Я бы хотел поступить следующим образом:
Найти коэффициент корреляции Пирсона между строками 1 и 2. Затем между строками 1 и 3 ... и т. Д. С остальными строками.
Затем найдите коэффициент корреляции Пирсона между строками 2 и 3. Затем между строками 2 и 4 ... и т. Д. С остальными строками. Обратите внимание, что я больше не найду коэффициент в строке 1 ...
Для тех коэффициентов, которые выше или ниже 0,7 или -0,7 соответственно, я хотел бы перечислить в отдельном файле имена строк, соответствующие этим коэффициентам, плюс коэффициент. Например.:
строка 230 - строка 5812 - 0,76
Я написал следующий код для этой цели. К сожалению, это занимает слишком много времени (я оценил почти неделю :().
for (i in 1:7999) {
print("Analyzing row:")
print(i)
for (j in (i+1):8000) {
value<- cor(alpha1k[i,],alpha1k[j,],use = "everything",method = "pearson")
if(value>0.7 | value<(-0.7)){
aristi <- c(row.names(alpha1k)[i],row.names(alpha1k)[j],value)
arist1p<-rbind(arist1p,aristi)
}
}
Тогда мой вопрос, есть ли способ, которым я мог бы сделать это быстрее. Я читал о параллельных вычислениях, но понятия не имею, как это сделать. Надеюсь, я прояснил себя достаточно, заранее спасибо!