我想将不同长度的矢量绑定在一起。我查了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.更长的解决方案是将向量长度保存在不同的向量中,并使用长度向量从带有循环的合并向量中拾取向量。但有更好的方法吗?因为我想把这个更大的矩阵/列表放到一个函数中,如果我不使用这个基于长度向量的方法,这将变得更容易。
答案 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)