在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(横向)。任何人都知道如何以更紧凑的方式执行此操作?
答案 0 :(得分: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
答案 1 :(得分: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