У меня есть 2 больших матрицы (обычно размером 5000 * 40 и 20000 * 40). Я пытаюсь создать корреляционную матрицу, где я хотел бы рассчитать соотношение каждой строки от первой матрицы к каждой другой строке во второй матрице. У меня есть минимальный код, он занимает очень много времени. Любые рекомендации по ускорению или параллелизации. БлагодаряВычисление большого числа корреляций в R
-Jaison
nprots <- 50 #usually ca. 5000
ngenes <- 1000 #usually ca. 20000
a_mat <- matrix(runif(40*nprots, 120, 116000), ncol=40)
b_mat <- matrix(runif(40*ngenes, 0.1, 1000), ncol=40)
system.time(apply(a_mat, 1, function(xx)
apply(b_mat, 1, cor, y = xx, use = "pairwise.complete.obs")) -> cor_mat)
Возможный дубликат [Быстрая корреляция в R с использованием C и распараллеливание] (http://stackoverflow.com/questions/18964837/fast-correlation-in-r-using-c-and-parallelization) –
Have просмотрел файлы справки SO? Похоже, этот ответ на ваш ответ [ваш вопрос] (http://stackoverflow.com/questions/18964837/fast-correlation-in-r-using-c-and-parallelization). –