将矢量存储在具有未知矢量长度的r中的矩阵中

时间:2016-09-18 17:32:17

标签: arrays r matrix vector

您好,我想知道是否有办法将矢量存储到数组或矩阵中。  例如,

array1<-array(dim=c(1,2))
vector1<-as.vector(1:5)
vector2<-as.vector(6:10)
array1[1,1]<-vector1
array1[1,2]<-vector2

所以当我打电话给

array1[1,1]

我会收到

[1] 1 2 3 4 5

我已经尝试过做我上面做的事情以及我得到的错误

 number of items to replace is not a multiple of replacement length

有没有办法解决这个问题?

另外,我面临的问题是我不知道矢量长度,矢量也可能有不同的长度。

即,向量1的长度可以是6,向量2的长度可以是7.

谢谢!

2 个答案:

答案 0 :(得分:4)

尝试使用列表:

my_list <- list()
my_list[[1]] <- c(1:5)
my_list[[2]] <- c(6:11)

列表允许您存储不同长度的矢量。可以通过寻址列表元素来检索向量:

> my_list[[1]]
#[1] 1 2 3 4 5

答案 1 :(得分:2)

您可以使用列表矩阵:

m <- matrix(list(), 2, 2)
m[1,1][[1]] <- 1:2
m[1,2][[1]] <- 1:3
m[2,1][[1]] <- 1:4
m[2,2][[1]] <- 1:5
m
#     [,1]      [,2]     
#[1,] Integer,2 Integer,3
#[2,] Integer,4 Integer,5

m[1, 2]
#[[1]]
#[1] 1 2 3

m[1, 2][[1]]
#[1] 1 2 3