を設定するのに問題がありsapply
ます。必要な作業を行う for ループはありますが、完了するのに時間がかかりすぎます。
変数名の説明:
dat #raw data
df #empty data frame to preallocate memory
uniq.user #unique user id
uniq.item #unique item id
df の列名: ユーザー ID、アイテム ID 1、アイテム ID 2、...、アイテム ID n
ユーザーが所有するアイテムを示すバイナリ テーブルを作成しようとしています。
例:
USERID1111 1 0 0 0 1
USERID2222 0 1 0 1 1
生データは次のようになります。
USERID1111 ITEM ID 1
USERID1111 ITEM ID 5
USERID2222 ITEM ID 2
USERID2222 ITEM ID 4
USERID2222 ITEM ID 5
私が持っているforループは次のとおりです。
for(i in 1:length(uniq.user)){
df[i, which(uniq.item %in% dat[df[i,1]== dat[,1], 2]) + 1] <- 1
}
を使用してこれをどのように変換しsapply
ますか? (またはその他の適用機能)
ありがとうございました!
ps このタスクを実行するためのより良い方法がある場合は、お知らせください。Rで物事を行うためのより効率的な方法を学ぼうとしています.