オンラインAPIからデータをロードしています。データにはページが付けられているため、連続して呼び出しを行う必要があります。並列化を使用してforeach()で残りのAPIを呼び出せません
したがって、出力を最終的にrbind()する並列化されたforeach()ループを設定しました。ここで
はコードです:
library('foreach')
library('parallel')
library('jsonlite')
registerDoMC(cores = parallel::detectCores())
data <- foreach(page = 1:10, .combine = rbind) %dopar% {
raw.data <- fromJSON(paste(endpoint, '&page=', page, sep =''))
raw.data <- raw.data$results
data.piece <- raw.data[c('id', 'scraper', 'title', 'text', 'ts', 'url', 'pertinence', 'source')]
data.piece
}
エンドポイントは、REST URLです。
ループはNULLを返し、さらにすぐに実行されます(各呼び出しには数秒が必要です)。
したがって、呼び出しがスキップされたようです。同じコードを並列に実行しないと、問題なく動作します。
上記のコードブロックの前に並列バックエンドを設定するコードだけでなく、この例を再現可能にするために必要なすべてのもの( 'endpoint'、' page'など)を含める必要があります。 – nrussell
ページが既にコードで定義されています。私は使用されたライブラリを追加しました。 私が言ったエンドポイントは、残りのURL(これは私が開示することはできません)ですが、残りのURLは可能です。 (%dopar%の代わりに%do%)というコードは、完璧に動作するので、エンドポイントは問題ではありません。 – Bakaburg
URLがあれば、エラーを再現するすべてのURLを例にしてください。 – nrussell