打印用最少的代码乘法表(Print a multiplication table with mini

2019-06-25 01:21发布

在R,什么是最快的方法(最短码)来打印乘法表? 职能序列代表和绑定功能有帮助,但我正在寻找的代码最短路线来做到这一点。

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))

经过6的去跨越(水平)打印1分的。 任何人都知道如何在更紧凑的方式进行呢?

Answer 1:

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


Answer 2:

的快捷方式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


文章来源: Print a multiplication table with minimal code
标签: r seq rbind