Это решение примерно в 1,5 раза медленнее, чем решение ОП.

я есть две матрицы, к которым я хочу применить функцию по строкам:

matrixA
           GSM83009  GSM83037  GSM83002  GSM83029  GSM83041
100001_at  5.873321  5.416164  3.512227  6.064150  3.713696
100005_at  5.807870  6.810829  6.105804  6.644000  6.142413
100006_at  2.757023  4.144046  1.622930  1.831877  3.694880

matrixB
          GSM82939 GSM82940 GSM82974 GSM82975
100001_at 3.673556 2.372952 3.228049 3.555816
100005_at 6.916954 6.909533 6.928252 7.003377
100006_at 4.277985 4.856986 3.670161 4.075533

Я нашел несколько похожих вопросов, но не так много ответов:mapply для матриц, Мульти матричный построчно mapply?, Код, который я сейчас делю, разбивает матрицы по строкам на списки, но необходимость разбивать его делает его довольно медленным и не намного быстрее, чем цикл for, учитывая, что у меня почти 9000 строк в каждой матрице:

scores <- mapply(t.test.stat, split(matrixA, row(matrixA)), split(matrixB, row(matrixB)))

Сама функция очень проста, просто найти значение t:

t.test.stat <- function(x, y)
{
    return( (mean(x) - mean(y)) / sqrt(var(x)/length(x) + var(y)/length(y)) )
}

Ответы на вопрос(2)

Ваш ответ на вопрос