绑定可变长度向量R.

时间:2013-08-21 13:21:27

标签: r vector

我想将不同长度的矢量绑定在一起。我查了this个帖子,但是我不知道如何使用append或cbind创建矩阵/列表。

举个例子, 我们来看两个不同长度的随机向量:

> b<-sample(10,5)
> d<-sample(10,10)

现在在它们上面运行cbind会将较小的向量重复到可能的任何位置,

> cbind(b,d)
       b  d
 [1,]  3  7
 [2,]  5  4
 [3,] 10  3
 [4,]  4  2
 [5,]  6  5
 [6,]  3  8
 [7,]  5  6
 [8,] 10 10
 [9,]  4  9
[10,]  6  1

如果我尝试追加,

> append(b,d)
 [1]  3  5 10  4  6  7  4  3  2  5  8  6 10  9  1

它将两个向量附加到1.更长的解决方案是将向量长度保存在不同的向量中,并使用长度向量从带有循环的合并向量中拾取向量。但有更好的方法吗?因为我想把这个更大的矩阵/列表放到一个函数中,如果我不使用这个基于长度向量的方法,这将变得更容易。

1 个答案:

答案 0 :(得分:1)

set.seed(1)
b <- rnorm(10,2,4)
d <- rnorm(50,5,3)
f <- rnorm(100,1,0.5)
example <- list(b=b,d=d,f=f)
for(i in paste("var",1:3)){
  example[[i]] <- rnorm(sample(100,1),mean=sample(5,1),sd=sample(3,1))
}
boxplot(example)

enter image description here