1

在 R 中,打印乘法表的最快方法(最短代码)是什么?seq rep 和 bind 函数有帮助,但我正在寻找最短的代码行来执行此操作。

rbind("1\'s"=1:12, "2\'s"=seq(2,24,2), "3\'s"=seq(3,36,3), 
      "4\'s"=seq(4,48,4), "5\'s"=seq(5,60,5), "6\'s"=seq(6,72,6))

打印 1 到 6 穿过(水平)。任何人都知道如何以更紧凑的方式执行此操作?

4

2 回答 2

9
tbl <- outer(1:6, 1:12, "*")
rownames(tbl) <- paste(1:6, "'s", sep="")
tbl

您可以通过使用稍微更紧凑paste0(1:6, "'s")

这似乎略有改善:

> v<-setNames(1:6, paste0(1:6, "\'s"))
> v %o% v
    1's 2's 3's 4's 5's 6's
1's   1   2   3   4   5   6
2's   2   4   6   8  10  12
3's   3   6   9  12  15  18
4's   4   8  12  16  20  24
5's   5  10  15  20  25  30
6's   6  12  18  24  30  36
于 2012-05-31T20:33:51.157 回答
5

的快捷方式outer(1:6, 1:12, "*")

> 1:6 %o% 1:12
     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12]
[1,]    1    2    3    4    5    6    7    8    9    10    11    12
[2,]    2    4    6    8   10   12   14   16   18    20    22    24
[3,]    3    6    9   12   15   18   21   24   27    30    33    36
[4,]    4    8   12   16   20   24   28   32   36    40    44    48
[5,]    5   10   15   20   25   30   35   40   45    50    55    60
[6,]    6   12   18   24   30   36   42   48   54    60    66    72
于 2015-04-06T18:27:18.743 回答