Liechi yihui 真是高手过招,精彩。 apply()
应该算是威震天下的北乔峰了。再看到 mode()
,这就是扫地僧。
换我肯定是这样解:
as.numeric(m)
## [1] 1 2 3 4 5 6 7 8 9
一看被降维打击了,继续补救:
m2 <- matrix(as.numeric(m), nrow = nrow(m))
m2
## [,1] [,2] [,3]
## [1,] 1 4 7
## [2,] 2 5 8
## [3,] 3 6 9
再看缺少行列名,继续补救:
rownames(m2) <- rownames(m)
colnames(m2) <- colnames(m)
m2
## yi er san
## one 1 4 7
## two 2 5 8
## three 3 6 9
完。只要能料到往前走能走到目的地,我就不会回到起点看看有没有别的捷径。
话说回来,mode()
这个解法太狠,让人略有恐惧和不安。包括上面的 rownames()
,凡是这种函数名放在赋值号左边的,我就忍不住怀有戒心。只有左边是个单纯的变量名,我才觉得放心。不过,想起赋值本身其实也是函数 assign()
而已,可能这种担心是多余的吧。