R programming - How to create a 2 dimensional array of vectors which are of different lengths
r
Solution
You could make a matrix of lists. That would look like
mat<-matrix(list(), nrow=3, ncol=2)
mat[[1,1]] <- c(1, 2, 3, 4)
mat[[1,2]] <- c(5, 6, 7)
mat[[2,1]] <- c(10, 11, 12, 13)
mat[[2,2]] <- c(14, 15, 16)
mat[[3,1]] <- c(21, 22, 23, 24)
mat[[3,2]] <- c(25, 26, 27)
Notice that you have to use double brackets here to extract cells unlike a standard matrix. Also they may not necessarily work the way you expect with standard functions for matrices.
Problem
I'm new to the R programming language, and I'm struggling to find the correct data type. How do you create a matrix of vectors? Maybe a better way to describe this would be a 2 dimensional array of vectors which are of different lengths. This is what I'm trying to do: ``` A = c(1, 2, 3, 4) B = c(5, 6, 7) C = c(10, 11, 12, 13) D = c(14, 15, 16) E = c(21, 22, 23, 24) F = c(25, 26, 27) mat = matrix(nrow=3, ncol=2) #This code does not work, but it may give you the gist of what I'm trying to do mat[1, 1] = A mat[1, 2] = B mat[2, 1] = C mat[2, 2] = D mat[3, 1] = E mat[3, 2] = F ``` I would like to get mat to contain the following: ``` [,1] [,2] [1,] 1 2 3 4 5 6 7 [2,] 10 11 12 13 14 15 16 [3,] 21 22 23 24 25 26 27 ``` I'm sure this is because I'm using the wrong data type, but I can't find the appropriate one. I've tried lists, arrays, and data frames, but none of them seem to quite fit exactly what I'm trying to do. Thanks for your help!