2012-02-20 26 views
14

tengo este código en R:¿Visualización de matriz sin nombres de filas y columnas?

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

y el resultado es:

 [,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 

Hace R tiene una opción para suprimir la presentación de los nombres de columna y nombres de las filas para que yo no obtiene el [, 1] [, 2] y así sucesivamente?

+0

Qué quiere decir en la consola 'R'? o cuando exporta de 'R'? – Justin

+0

También tenga en cuenta que en R no necesita los puntos y comas al final de la instrucción. Y 'mat' no es un comando. Supongo que te refieres a 'matriz (seq1, 2)' porque tu comando no funciona ... – Dason

Respuesta

14

Si desea conservar los nombres de las dimensiones, pero simplemente no son imprimibles, se puede definir una nueva función de impresión.

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 
+2

Usaría el término de la elipsis en la función primaria y lo pasaría a la función de formateo, por lo que las opciones disponibles para el formato se puede acceder por print.matrix, es decir, scientific = FALSE, etc ... –

4

Esto funciona para matrices:

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

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

solución por Fojtasek es probablemente la mejor, pero aquí es otra vez usando 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=" ")) 
} 
2

Existe, también, ?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 
Cuestiones relacionadas