5

同じ長さの 2 つのオブジェクトがあります (1 つは JSON を解析して生成されたリストで、もう 1 つは配列の多次元のスライスです)。

library(rjson)
library(foreach)
iter1<-iter( fromJSON(file=jsonfilename)$someJSONarray )
iter2<-iter( myarr, by="row" )

次のことができる必要があります。

out=foreach(x=zipiter(iter1,iter2),combine=list) %do%
{
    #Do stuff with elements from both iterators accessed by e.g. x[[1]] and x[[2]]
}

それを行う標準的な方法はありますか(ブーストZipイテレータを使用したPython/C++のように)?

4

3 に答える 3

1

これはまさにあなたが必要としているものではないかもしれませんが、うまくいけば、少なくとも正しい軌道に乗ることができます:

library(foreach)

X = 1:10
Y = 11:20

out = foreach(x=t(data.frame(X, Y))) %do% {x[1,]*x[2,]}

はい、これは奇妙ですが、データを適切にペアリングします。データフレームを渡すとforeach、行ではなく列を反復処理します (同じことを行うので、これはまったく驚くべきことではありませんlapply)。したがって、データフレームを転置すると、行が反復されますが、xオブジェクトは列ベクトルであるため、期待どおりに列ではなく行にインデックスを付ける必要があります。

于 2013-07-31T21:22:51.973 に答える