以下のコードをRで並列化したいと思います。これは入れ子のforループです。入れ子のforループを並列化するR
for (i in 1:nrow(my_dataset_preprocessed)){
for (j in 1:ncol(my_dataset_preprocessed)){
my_dataset_preprocessed[i,j] = min(my_dataset_preprocessed[i,j], 0.1)
}
}
私はdoParallel
library(foreach)
library(doParallel)
registerDoParallel(detectCores())
clusterExport(cl, "my_dataset")
threshold_par <- function (X) {
co <- foreach(i=1:nrow(X)) %:%
foreach (j=1:ncol(X)) %dopar% {
co = min(X[i,j], 0.1)
}
matrix(unlist(co), ncol=ncol(X))
}
system.time(threshold_par(my_dataset))
を使用して以下のコードをしようとしています。しかし、私は次のエラーを取得しています:
Error in { : task 1 failed - "invalid 'type' (list) of argument"
は、このコードを並列化するために任意のより良い方法はあります(使用することができますparLapply)?そうでない場合は、上記のコードをどのように修正すればよいですか?
を削除する場合は、次のは、働いていた私は、 'lapply(my_dataset_preprocessed、関数(x)は、PMIN(X、0.1))'行うにはシンプルなことだと思います。 – Benjamin
データが行列の場合、これはうまくいくはずです: 'my_dataset [my_dataset> 0.1] < - 0.1' – emilliman5