【发布时间】:2014-12-16 20:31:47
【问题描述】:
有人可以建议一种方法来print 在终端窗口中并排几个矩阵。
对于矩阵m1 和m2,我想要下面的输出。
m1 <- m2 <- matrix(1:4, nrow=2, dimnames=list(c("a", "b"), c("d", "e")))
期望的输出
m1 m2
d e d e
a 1 3 a 1 3
b 2 4 b 2 4
原因是我在计算中使用了几个 2x2 矩阵并希望在 Rmarkdown 文档中显示。打印长度方式时,它占用了太多的页面。谢谢。
编辑
我的解决方案尝试
fn <- function(x) setNames(data.frame(.=paste(" ", rownames(x)), x,
check.names=F, row.names=NULL),c(paste(substitute(x)), colnames(x)))
cbind(fn(m1), fn(m2))
# m1 d e m2 f g
#1 a 1 3 v 1 3
#2 b 2 4 w 2 4
但这当然看起来不太好。
【问题讨论】:
-
您需要能够访问这些值,还是纯粹是为了美观?意思是print方法可以用字符串代替数值吗?
-
嗨,@RichardScriven。不,我不需要访问/计算它们,它是屏幕上的
print。 -
是的,我认为这可能很棘手,但感谢您的关注。我能做的最好的事情是
fn <- function(x) data.frame(.=paste(" ", rownames(x)), x, check.names=F, row.names=NULL) ; cbind(fn(m1), fn(m2))不完全在那里。 -
我在尝试使用
capture.output(list(m1=m1, m2=m2)),然后在结果上使用cat。基本上就像一个并排列表 -
嗯,忘了 capture.output,这可能是一种方法。生病看看。谢谢。