0

假设我想创建一个列表,其中每个元素都是一个整数向量。

让我们说我有,

a = c(1,2,3,4)
b = c(7,9,10,3)
d = c(90.2,43.1,54.2,12.3)

我想要一个列表,其中列表的元素 1 是: c(1,7,90.2) 第二个元素是, c(2,9,43.1), 第三个元素是, c(3,10,54.2), 第四个元素是, c(4,3,12.3)

如果我做,

my.list = list(a=a,b=b,d=d)

给了我想要的转置。有没有直接的方法可以实现这样的目标?

我需要一个列表,因为我想使用 mclapply 函数,并且该函数仅将列表作为输入,或者(如果给定数据帧)会将它们强制为不需要的列表结构。

请注意,在我的程序中,这个向量非常庞大,大约有 4 亿个条目。我正在寻找一种非常快速有效的方法来做到这一点。谢谢!

4

2 回答 2

2
kk<-Map(function(x,y,w) c(x,y,w),a,b,d)
> kk[1]
[[1]]
[1]  1.0  7.0 90.2

要不就 :

 kk<-Map(`c`,a,b,d)
> kk[1]
[[1]]
[1]  1.0  7.0 90.2
于 2013-09-27T20:34:40.467 回答
1

把你的向量变成一个data.frame

adf<-data.frame(a=a, b=b, d=d)

然后使用apply将每一行变成一个列表元素:

apply(adf, 1, function(x) list(x))
于 2013-09-27T19:59:08.030 回答