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!

Original source