[R] resizing data
emorway
emorway at usgs.gov
Fri Jan 25 22:12:09 CET 2013
Undoubtedly this question has been asked before, I just can't seem to find
the combination of search terms to produce it. I'm trying to resize a
dataset that is pulled into R using read.table. However, I think the same
problem can be produced using matrix:
x<-matrix(1:64,8)
x
# [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
#[1,] 1 9 17 25 33 41 49 57
#[2,] 2 10 18 26 34 42 50 58
#[3,] 3 11 19 27 35 43 51 59
#[4,] 4 12 20 28 36 44 52 60
#[5,] 5 13 21 29 37 45 53 61
#[6,] 6 14 22 30 38 46 54 62
#[7,] 7 15 23 31 39 47 55 63
#[8,] 8 16 24 32 40 48 56 64
The true order of data in the larger problem I'm working with is actually
transposed, like so:
x<-t(x)
x
# [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
#[1,] 1 2 3 4 5 6 7 8
#[2,] 9 10 11 12 13 14 15 16
#[3,] 17 18 19 20 21 22 23 24
#[4,] 25 26 27 28 29 30 31 32
#[5,] 33 34 35 36 37 38 39 40
#[6,] 41 42 43 44 45 46 47 48
#[7,] 49 50 51 52 53 54 55 56
#[8,] 57 58 59 60 61 62 63 64
I'm trying to resize the data (in this example, a matrix) to say a 16 x 4
matrix while preserving the consecutive order of the individual elements in
a left-to-right top-to-bottom fashion. The example below is wrong because
the first row should be "1 2 3 4", how can I make this happen? It would
also be nice to make a 4 x 16 matrix where the first row contains the values
of x[1,1:8] followed by x[2,1:8]. I'm guessing there is a 1 liner of R code
for this type of thing so I don't have to resort to nested for loops?
y<-matrix(x,nrow=16,ncol=4)
y
# [,1] [,2] [,3] [,4]
# [1,] 1 3 5 7
# [2,] 9 11 13 15
# [3,] 17 19 21 23
# [4,] 25 27 29 31
# [5,] 33 35 37 39
# [6,] 41 43 45 47
# [7,] 49 51 53 55
# [8,] 57 59 61 63
# [9,] 2 4 6 8
#[10,] 10 12 14 16
#[11,] 18 20 22 24
#[12,] 26 28 30 32
#[13,] 34 36 38 40
#[14,] 42 44 46 48
#[15,] 50 52 54 56
#[16,] 58 60 62 64
--
View this message in context: http://r.789695.n4.nabble.com/resizing-data-tp4656653.html
Sent from the R help mailing list archive at Nabble.com.
More information about the R-help
mailing list