执行两个向量的“交叉乘积”,但添加

时间:2011-07-13 19:33:52

标签: r cross-product

我正在尝试使用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来研究掷骰子时可能总数的可能性。

感谢您的帮助!这个网站对我有很大的帮助。我感谢任何花时间回答陌生人问题的人。

UPDATE 所以我发现`outer(x,y,'+')会先做我想要的。但我仍然不知道如何创建有序对或有序三元组。

2 个答案:

答案 0 :(得分:14)

outer

可以轻松处理您的第一个问题
outer(1:6,1:6,"+")

对于其他人,我建议您尝试expand.grid,尽管如果您进行一些搜索,也会有专门的组合和排列功能。

答案 1 :(得分:13)

expand.grid可以回答您的第二个问题:

expand.grid(1:6,1:6)
expand.grid(1:6,1:6,1:4)