Матричный дисплей без имен строк и столбцов?
У меня этот код в 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] и т.д.?
Ответы
Ответ 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
Ответ 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=" "))
}