Как вычислить матрицу суммы двух бросков кубиков в R? - PullRequest
1 голос
/ 25 февраля 2020

Существует ли идиоматический c способ вычисления суммы двух бросков кубиков в R в виде матрицы?

Это вывод, который я ищу:

      [1]  [2]  [3]  [4]  [5]  [6]
[1]    2    3    4    5    6    7
[2]    3    4    5    6    7    8
[3]    4    5    6    7    8    9
[4]    5    6    7    8    9   10
[5]    6    7    8    9   10   11
[6]    7    8    9   10   11   12

Ответы [ 3 ]

5 голосов
/ 25 февраля 2020

Наружная функция предназначена для взятия внешнего произведения двух векторов, но вы можете переключить функцию на «+».

outer(1:6, 1:6, "+")
2 голосов
/ 25 февраля 2020

Другая базовая опция R, кроме outer, с использованием replicate

r <- t(replicate(6,1:6))+1:6

или

r <- (u <- replicate(6,1:6)) + t(u)

, такая что

> r
     [,1] [,2] [,3] [,4] [,5] [,6]
[1,]    2    3    4    5    6    7
[2,]    3    4    5    6    7    8
[3,]    4    5    6    7    8    9
[4,]    5    6    7    8    9   10
[5,]    6    7    8    9   10   11
[6,]    7    8    9   10   11   12
1 голос
/ 26 февраля 2020
sapply(seq(6), "+", seq(6))

#     [,1] [,2] [,3] [,4] [,5] [,6]
#[1,]    2    3    4    5    6    7
#[2,]    3    4    5    6    7    8
#[3,]    4    5    6    7    8    9
#[4,]    5    6    7    8    9   10
#[5,]    6    7    8    9   10   11
#[6,]    7    8    9   10   11   12
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...