共通キー/インデックスのセットが完全に重複している場合、それは...
Reduce(`&`, user$user.id %in% some.data$user.id)
...はTRUEを返し、あなたが言ったように、キーの重複はありませんで、マージの問題はdata.frameに列を追加することになります。一緒にラインの何か...
library(log4r)
t1 <- system.time(z <- merge(user, some.data, by='user.id'))
info(my.logger, paste('Elapsed time with merge():', t1['elapsed']))
t2 <- Sys.time()
r <- data.frame(user.id=user$user.id, V1.x=user$V1, V2.x=user$V2)
r[,names(some.data)] <- some.data[,names(some.data)
t3 <- Sys.time()
info(my.logger, paste('Elapsed time without:', t3-t2))
上記の仮定が成り立たない場合は、両方のキーセット、変換関数、NAパディングの組み合わせが少し複雑になりますが、併合して重複する仮定だけでは、先に進むことができます。
また、system.time()を呼び出すmerge()のタイミングとは異なり、Sys.time()が2回呼び出されるため、秒のアプローチのタイミングは偏っていることにも注意してください。
(S.O.マークアップの私の不用意な使用を許してください)