打印矩阵没有列名但保持对齐?

时间:2018-06-08 12:41:19

标签: r matrix

我想打印一个没有列名的矩阵,发现这个answer。但是,当行名称保持不变并且长度不同时,这将导致输出的列不再对齐:

m <- matrix(LETTERS[1:12],nrow = 2, ncol = 6)
rownames(m) <- c("First Row", "Second Row")

使用print只是忽略col.names = FALSE参数(为什么?):

print(m, col.names=FALSE, quote=FALSE)
>            [,1] [,2] [,3] [,4] [,5] [,6]
> First Row  A    C    E    G    I    K   
> Second Row B    D    F    H    J    L 

建议使用write.table删除对齐方式:

write.table(format(m, justify="right"), col.names=FALSE, quote=FALSE)
> First Row A C E G I K
> Second Row B D F H J L

如何保持行名称和对齐的完整性?

1 个答案:

答案 0 :(得分:1)

如果您确实不希望使用矩阵或表类,则可以使用数据框,从而轻松隐藏列名并使数据保持对齐。

>d = as.data.frame(m)
>colnames(d)=NULL
>d                   
 First Row  A C E G I K
 Second Row B D F H J L