Отображение матрицы без названий строк и столбцов? - PullRequest
16 голосов
/ 20 февраля 2012

У меня есть этот код в 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] и так далее?

Ответы [ 4 ]

14 голосов
/ 21 февраля 2012

Если вы хотите сохранить имена измерений, но не печатать их, вы можете определить новую функцию печати. ​​

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
4 голосов
/ 20 февраля 2012

Это работает для матриц:

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

dimnames(mat) <-list(rep("", dim(mat)[1]), rep("", dim(mat)[2]))
mat
3 голосов
/ 03 августа 2016

Существует также, ?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
1 голос
/ 02 июня 2015

Решение от Фойтасек , вероятно, лучше, но вот другой, использующий вместо этого 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=" "))
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...