Rでplyrパッケージを使用して、次のことを行っています。
- 列 A と列 B に従ってテーブル A から行を取り出す
- 列 A と列 B に同じ値を持つテーブル B の行を見つける
- 列 C をテーブル B からテーブル A にコピーする
進行状況を表示する進行状況バーを作成しましたが、100% になった後もまだ実行されているように見えます。CPU がまだ RGUI によって占有されていることがわかりますが、終了しません。
私のテーブルAには、一意の列Aと列Bを持つ約40000行のデータがあります.
plyr の「split-conquer-combine」ワークフローの「combine」部分では、この 40000 行のデータを処理できないと思われます。これは、4000 行のデータを持つ別のテーブルに対して処理できるためです。
効率を改善するための提案はありますか?ありがとう。
アップデート
これが私のコードです:
for (loop.filename in (1:nrow(filename)))
{print("infection source merge")
print(filename[loop.filename, "table_name"])
temp <- get(filename[loop.filename, "table_name"])
temp1 <- ddply(temp,
c("HOSP_NO", "REF_DATE"),
function(df)
{temp.infection.source <- abcde[abcde[,"Case_Number"]==unique(df[,"HOSP_NO"]) &
abcde[,"Reference_Date"]==unique(df[,"REF_DATE"]),
"Case_Definition"]
if (length(temp.infection.source)==0) {
temp.infection.source<-"NIL"
} else {
if (length(unique(temp.infection.source))>1) {
temp.infection.source<-"MULTIPLE"
} else {
temp.infection.source<-unique(temp.infection.source)}}
data.frame(df,
INFECTION_SOURCE=temp.infection.source)
},
.progress="text")
assign(filename[loop.filename, "table_name"], temp1)
}