複数の降雪スレッドが write.table() を使用して同じファイルに書き込もうとしています。少数のケースでは、行が壊れています。つまり、複数の行が混ざっているように見えます。これは、2 つのスレッドが同時に同じファイルに書き込もうとした場合と推測されます。
例は次のとおりです。
require(snowfall)
sfInit(parallel = TRUE, cpus = 16)
sfLapply(1:10000,function(x){
mytable = data.frame(a = c(1,2,3),b = c(4,5,6))
write.table(mytable,"mytable.csv",sep = ',',append = T,col.names = F)
})
一度に 1 つのスレッドのみがファイルに書き込むようにする方法はありますか?本質的に、スレッドはファイルをロックし、それに書き込み、ロックを解放しますか?