Я должен вычислить ряд статистических данных для большой матрицы, и я хочу сделать это наиболее эффективным способом, используя вектор в качестве фактора группировки.
Строки - это переменные, которые я хочу сгруппировать, а столбцы -samples.
Например:
mat = matrix(seq(1,10000), ncol = 100)
vect_group = c(1,1,1,1,1,2,2,2,3,3,3, ...)
Я хочу вычислить среднее значение по столбцам всех строк с индексами 1, 2, 3 и так далее.Итак, в этом случае, получите что-то новое в матрице с таким количеством строк, сколько уровней vect_group
и соответствующей статистикой в сопоставленном столбце.
До сих пор я получал эту циклическую обработку по индексам и использовал apply onэти подматрицы каждый раз, но я хотел бы ускорить процедуру.Я пробовал doParallel
и foreach
, но безуспешно.
Ключевой частью, с которой я борюсь, является процедура расщепления / агрегирования для получения меньших матриц.Кроме того, я не знаю, повлияют ли накладные расходы на выбор многопоточных вычислений.