我有两个矩阵
mat1 <- matrix(1:4, nrow=2)
dimnames(mat1) <- list(letters[1:2], letters[3:4])
mat2 <- matrix(11:19, nrow=3)
dimnames(mat2) <- list(letters[10:12], letters[13:15])
我希望将两个矩阵“cbind”成一个对象x
,这样我就可以write.table(x, "clipboard", sep="\t", col.names=NA)
,粘贴到Excel中,让两个矩阵并排显示,并且它们的dimnames完好无损。
c d m n o
a 1 3 j 11 14 17
b 2 4 k 12 15 18
l 13 16 19
最好的方法是什么?
答案 0 :(得分:1)
至少对于典型的基本R功能是不可能的。您需要扩充较小的(或可能的两者),以便它们可以被cbind()编辑,然后粘贴(使用制表符分隔符)到Excel中。即使将字符流复制到剪贴板中以便在一个矩阵上执行此操作,操作也是微不足道的。 Ripley-Venables编写的MASS包具有write.matrix
函数,但它不写rownames,只写列名。这是衍生(省略阻止选项)功能,首先在左上角添加一个空白,然后在处理前绑定rownames。它可以与在第二个中插入rownames的函数配对。也许{/ 1}}函数用
cbind.fill
接着是MASS :: write.matrix第二部分的黑客攻击:
matbound <-cbind.fill(mat1, cbind(rownames(mat2),mat2) )
(剪贴板值可能是Windows机器上的“剪贴板”。)