[R] Large matrix into a vector
Prof Brian Ripley
ripley at stats.ox.ac.uk
Wed Mar 28 19:50:42 CEST 2007
We have already seen three solutions.
I don't like to see the use of c() for its side effects. In this case
Marc's as.vector seems to me to be self-explanatory, and that is a virtue
in programming that is too often undervalued.
On Wed, 28 Mar 2007, Marc Schwartz wrote:
> On Wed, 2007-03-28 at 10:27 -0700, A Ezhil wrote:
>> Hi,
>>
>> I have a matrix HR(9x27). I would like to make a
>> single vector with elements: t(HR[,1]) followed by
>> t(HR[,2]) and then t(HR[,3] ... etc. Is there any neat
>> way of converting this matrix into a vector rather
>> doing something like c(t(HR[,1]), t(HR[,2]), t(HR[,3])
>> ..)?
>
> Keep in mind that a matrix is simply a vector, with a 'dim' attribute.
> In addition, the matrix elements are stored in column order, so:
>
> mat <- matrix(1:(9 * 27), ncol = 27)
>
>
>> mat
> [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12]
> [1,] 1 10 19 28 37 46 55 64 73 82 91 100
> [2,] 2 11 20 29 38 47 56 65 74 83 92 101
> [3,] 3 12 21 30 39 48 57 66 75 84 93 102
> [4,] 4 13 22 31 40 49 58 67 76 85 94 103
> [5,] 5 14 23 32 41 50 59 68 77 86 95 104
> [6,] 6 15 24 33 42 51 60 69 78 87 96 105
> [7,] 7 16 25 34 43 52 61 70 79 88 97 106
> [8,] 8 17 26 35 44 53 62 71 80 89 98 107
> [9,] 9 18 27 36 45 54 63 72 81 90 99 108
> [,13] [,14] [,15] [,16] [,17] [,18] [,19] [,20] [,21] [,22] [,23]
> [1,] 109 118 127 136 145 154 163 172 181 190 199
> [2,] 110 119 128 137 146 155 164 173 182 191 200
> [3,] 111 120 129 138 147 156 165 174 183 192 201
> [4,] 112 121 130 139 148 157 166 175 184 193 202
> [5,] 113 122 131 140 149 158 167 176 185 194 203
> [6,] 114 123 132 141 150 159 168 177 186 195 204
> [7,] 115 124 133 142 151 160 169 178 187 196 205
> [8,] 116 125 134 143 152 161 170 179 188 197 206
> [9,] 117 126 135 144 153 162 171 180 189 198 207
> [,24] [,25] [,26] [,27]
> [1,] 208 217 226 235
> [2,] 209 218 227 236
> [3,] 210 219 228 237
> [4,] 211 220 229 238
> [5,] 212 221 230 239
> [6,] 213 222 231 240
> [7,] 214 223 232 241
> [8,] 215 224 233 242
> [9,] 216 225 234 243
>
>
>> as.vector(mat)
> [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
> [17] 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
> [33] 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
> [49] 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
> [65] 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
> [81] 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96
> [97] 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
> [113] 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128
> [129] 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144
> [145] 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160
> [161] 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176
> [177] 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192
> [193] 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208
> [209] 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224
> [225] 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240
> [241] 241 242 243
>
>
> HTH,
>
> Marc Schwartz
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>
--
Brian D. Ripley, ripley at stats.ox.ac.uk
Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
University of Oxford, Tel: +44 1865 272861 (self)
1 South Parks Road, +44 1865 272866 (PA)
Oxford OX1 3TG, UK Fax: +44 1865 272595
More information about the R-help
mailing list