Advertisement
Guest User

Untitled

a guest
Feb 19th, 2019
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.67 KB | None | 0 0
  1. mtx <- matrix(1:16,4)
  2. dimnames(mtx)[[2]][1] <- 'col1'
  3.  
  4. mtx <- matrix(1:16,4)
  5. dimnames(mtx)[[1]] <- letters[1:4]
  6. dimnames(mtx)[[2]] <- LETTERS[1:4]
  7. dimnames(mtx)[[2]][1] <- 'col1'
  8. dimnames(mtx)[[2]][2] <- 'col2'
  9.  
  10. mtxNameSticker <- function(mtx, prepend = NULL, MARGIN=2)
  11. {
  12. if (MARGIN == 1) max <- nrow(mtx) else
  13. max <- ncol(mtx)
  14. if (is.null(prepend)) if (MARGIN == 2) prepend <- 'C' else
  15. prepend <- 'R'
  16. if (length(prepend) == 1) prepend <- paste0(prepend, 1:dim(mtx)[[MARGIN]])
  17. dimnames(mtx)[[MARGIN]] <- seq(from=1, by=1, length.out=dim(mtx)[[MARGIN]])
  18. for (i in 1:max){
  19. dimnames(mtx)[[MARGIN]][i] <- prepend[i]
  20. }
  21. return(mtx)
  22. }
  23.  
  24. dimnames(mtx) <- lapply(dim(mtx), seq_len)
  25. mtx
  26. # 1 2 3 4
  27. # 1 1 5 9 13
  28. # 2 2 6 10 14
  29. # 3 3 7 11 15
  30. # 4 4 8 12 16
  31.  
  32. dimnames(mtx)[[2]][1] <- 'col1'
  33. mtx
  34. # col1 2 3 4
  35. # 1 1 5 9 13
  36. # 2 2 6 10 14
  37. # 3 3 7 11 15
  38. # 4 4 8 12 16
  39.  
  40. R> M <- matrix(1:4,2,2)
  41. R> M
  42. [,1] [,2]
  43. [1,] 1 3
  44. [2,] 2 4
  45. R>
  46.  
  47. R> M1 <- M; dimnames(M1) <- list(NULL, c("a","b")); M1
  48. a b
  49. [1,] 1 3
  50. [2,] 2 4
  51. R>
  52.  
  53. R> M2 <- M; dimnames(M2) <- list(c("A","B"), NULL); M2
  54. [,1] [,2]
  55. A 1 3
  56. B 2 4
  57. R>
  58.  
  59. x <- NULL
  60. x[[2]][1] <- 'col1'
  61. str(x)
  62. ## chr [1:2] NA "col1"
  63.  
  64. x <- NULL
  65. x[[2]][1] <- 'col1'
  66. str(x)
  67.  
  68. ## List of 2
  69. ## $ : NULL
  70. ## $ : chr "col1"
  71.  
  72. dimnames(mtx) <- list(character(nrow(mtx)), character(ncol(mtx)))
  73. # or
  74. # dimnames(mtx) <- lapply(dim(mtx), character)
  75. dimnames(mtx)[[2]][1] <- 'col1'
  76.  
  77. dimnames(mtx) = list(NULL,col1=NULL)
  78. mtx
  79. # col1
  80. # [,1] [,2] [,3] [,4]
  81. # [1,] 1 5 9 13
  82. # [2,] 2 6 10 14
  83. # [3,] 3 7 11 15
  84. # [4,] 4 8 12 16
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement