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) 2 c(2,9,43.1)番目の要素は 、3 番目の要素は 、 c(3,10,54.2)4 番目の要素は です 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

ベクトルを 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 に答える