Спрашивает об умножении набора данных в R

#r #for-loop #matrix-multiplication

#r #для цикла #матрица-умножение

Вопрос:

У меня есть два набора данных «A» с 2000 строками и 1000 столбцами и «B» с 5 строками и 1000 столбцами. Теперь я хочу создать третий набор данных C с 2000 строками и 5 строками. Каждая ячейка в C представляет собой линейную комбинацию из 1000 ячеек из A и 1000 ячеек из B.

 A <- as.data.frame(matrix(0, nrow=2000,ncol=1000))


B <- as.data.frame(matrix(0, nrow=5,ncol=1000))
  

Я знаю очень простой способ создать C:

 for (i in 1:2000) { 
      for (j in 1:5)  {
      C[i,j] <- A[i,1]*B[j,1]   A[i,2]*B[J,2]   ....  A[i,1000]*B[j,1000]
                       }
      }
  

Но мне придется писать очень длинный код вручную. Я прошу каких-либо указаний по гораздо более простому и читаемому коду.

Заранее большое спасибо!

Комментарии:

1. C = as.matrix(A) %*% t(B) ?

2. На самом деле вы можете показать примерные данные и ожидаемый результат, если вы использовали что-то меньше 2000. Возможно, 10×5 и 5×5 соответственно. Кроме того, хотя я приветствую программный образец данных, наличие матрицы из всех нулей не обязательно показывает какие-либо результаты из математики.

3. Большое спасибо за руководство d.b и предложения r2evans!