0

我想将不同长度的向量绑定在一起。我查了这个线程,但不清楚如何使用 append 或 cbind 制作矩阵/列表。

例如,让我们取 2 个不同长度的随机向量:

> 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 中。更长的解决方案是将向量长度保存在不同的向量中,并使用长度向量从这个合并的向量中循环提取向量。但是有没有更好的方法呢?因为我想把这个更大的矩阵/列表放入一个函数中,如果我不使用这种基于长度向量的方法,这将变得更容易。

4

1 回答 1

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)

在此处输入图像描述

于 2013-08-21T13:32:55.033 回答