Выполните «перекрестное произведение» двух векторов, но с добавлением

Я пытаюсь использовать R для выполнения операции (в идеале с аналогичным отображаемым выводом), например

> x<-1:6
> y<-1:6
> x%o%y
     [,1] [,2] [,3] [,4] [,5] [,6]
[1,]    1    2    3    4    5    6
[2,]    2    4    6    8   10   12
[3,]    3    6    9   12   15   18
[4,]    4    8   12   16   20   24
[5,]    5   10   15   20   25   30
[6,]    6   12   18   24   30   36

где каждая запись находится путем сложения, а не умножения.

Мне также было бы интересно создать 36 упорядоченных пар (1,1), (1,2) и т.д...

Кроме того, я хочу использовать другой вектор, например

z<-1:4

чтобы создать все упорядоченные триплеты, возможные между x, y и z.

Я использую R, чтобы изучить вероятность возможной суммы при бросании костей с различным количеством размеров.

Спасибо за все что ты сделал для меня! Этот сайт мне очень помог. Я ценю любого, кто находит время, чтобы ответить на вопрос незнакомца.

ОБНОВЛЕНИЕ Итак, я обнаружил, что `outer(x,y,'+') сначала сделает то, что я хотел. Но я до сих пор не знаю, как создавать упорядоченные пары или упорядоченные тройки.


person Michael    schedule 13.07.2011    source источник


Ответы (2)


expand.grid может ответить на ваш второй вопрос:

expand.grid(1:6,1:6)
expand.grid(1:6,1:6,1:4)
person Joshua Ulrich    schedule 13.07.2011
comment
Благодарю вас! Это именно то, что я хочу. Мои ученики будут довольны завтра! - person Michael; 13.07.2011

Ваш первый вопрос легко обрабатывается outer:

outer(1:6,1:6,"+")

Что касается других, я предлагаю вам попробовать expand.grid, хотя есть и специальные функции комбинирования и перестановки, если вы немного поискате.

person joran    schedule 13.07.2011
comment
Оооо, вы редактировали до первых 5 минут, так что похоже, что я просто смахнул ваш ответ... ;-) - person Joshua Ulrich; 13.07.2011
comment
Джошуа не смахнул мой ответ! Спасибо за помощь! Знаете ли вы хорошее место, где можно найти такие функции? У меня есть эталонная карточка r, но я не думаю, что там есть "внешний". - person Michael; 13.07.2011
comment
@Josua - Извините за это; Я знал outer на макушке, а затем вернулся, чтобы посмотреть, есть ли что-нибудь лучше, чем expand.grid... Мне не следует так спешить за представителем! ;) - person joran; 13.07.2011
comment
@joran: я просто шучу. Вы давали очень полезные ответы. Продолжайте в том же духе, и репутация придет. - person Joshua Ulrich; 14.07.2011