【问题标题】:Matrix display without row and column names?没有行名和列名的矩阵显示?
【发布时间】:2012-02-20 18:41:16
【问题描述】:

我在 R 中有这段代码:

seq1 <- seq(1:20)
mat <- matrix(seq1, 2)

结果是:

     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,]    1    3    5    7    9   11   13   15   17    19
[2,]    2    4    6    8   10   12   14   16   18    20

R 是否有一个选项来抑制列名和行名的显示,这样我就不会得到 [,1] [,2] 等等?

【问题讨论】:

  • 您是指在R 控制台中吗?或者当您从R 导出时?
  • 另请注意,在 R 中,您不需要语句末尾的分号。 mat 不是命令。我假设您的意思是matrix(seq1, 2),因为您的命令不起作用...

标签: r matrix


【解决方案1】:

如果您想保留维度名称但不打印它们,您可以定义一个新的打印函数。

print.matrix <- function(m){
write.table(format(m, justify="right"),
            row.names=F, col.names=F, quote=F)
}

> print(mat)
 1  3  5  7  9 11 13 15 17 19
 2  4  6  8 10 12 14 16 18 20

【讨论】:

  • 我会在父函数中使用省略号,并将其传递给 format 函数,因此可以通过 print.matrix 访问可用于格式化的选项,即,scientific=FALSE 等。 .
  • AFAICT, print.matrix 不再受支持,已被 prmatrix 取代,以前是别名。
【解决方案2】:

这适用于矩阵:

seq1 <- seq(1:20)
mat <- matrix(seq1, 2)

dimnames(mat) <-list(rep("", dim(mat)[1]), rep("", dim(mat)[2]))
mat

【讨论】:

    【解决方案3】:

    还有?prmatrix:

    prmatrix(mat, collab = rep_len("", ncol(mat)), rowlab = rep_len("", ncol(mat)))
    #                          
    # 1 3 5 7  9 11 13 15 17 19
    # 2 4 6 8 10 12 14 16 18 20
    

    【讨论】:

      【解决方案4】:

      Fojtasek 的解决方案可能是最好的,但这里是另一个使用 sprintf 的解决方案。

      print.matrix <- function(x,digits=getOption('digits')){
        fmt <- sprintf("%% .%if",digits)
        for(r in 1:nrow(x))
          writeLines(paste(sapply(x[r,],function(x){sprintf(fmt,x)}),collapse=" "))
      }
      

      【讨论】:

        【解决方案5】:
        > writeLines(apply(format(matrix(1:20,2)),1,paste,collapse=" "))
         1  3  5  7  9 11 13 15 17 19
         2  4  6  8 10 12 14 16 18 20
        > writeLines(apply(matrix(1:20,2),1,paste,collapse=" "))
        1 3 5 7 9 11 13 15 17 19
        2 4 6 8 10 12 14 16 18 20
        

        【讨论】:

          猜你喜欢
          • 2018-06-25
          • 1970-01-01
          • 2014-03-31
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-11-20
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多