Let's say I have a vector in R as follows:
d<-seq(1,100)
I want to reshape this vector into a 10x10 matrix, so that I will have this data instead:
[,1] [,2] [,3] .. [,10]
1 2 3 .. 10
11 12 13 .. 20
21 22 23 .. 30
..
91 92 93 .. 100
I tried to use reshape function, but it didn't work. Can someone help please?
You can do
dim(d) <- c(10, 10)
d <- t(d)
or
d <- matrix(d, nrow = 10, byrow = TRUE)
If you want to convert a predifined list to a matrix (e.g. a 5*4 matrix), do
yourMatrix <- matrix(unlist(yourList), nrow = 5, ncol = 4)
It is worth noting that the matrix is created by columns, which means your data will be filled into the matrix by columns. So, if you want to the matrix created by rows, simply using t(), such as
yourMatrix <- matrix(unlist(yourList), nrow = 4, ncol = 5) # exchanges the cols and rows
yourMatrix <- t(yourMatrix) # matrix transpose
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With