特定の機能をグループにまとめようとしています。以下のdata.frame(グループ化)は私の「キー」です(Excelのvlookupを考えてください)。
Original Grouped
1 Features Constant
2 PhoneService Constant
3 PhoneServices Constant
4 Surcharges Constant
5 CallingPlans Constant
6 Taxes Constant
7 LDUsage Noise
8 RegionalUsage Noise
9 LocalUsage Noise
10 Late fees Noise
11 SpecialServices Noise
12 TFUsage Noise
13 VoipUsage Noise
14 CCUsage Noise
15 Credits Credits
16 OneTime OneTime
次に、grouped $ Originalから特定の値をとる列(BillSection)を持つデータベースを参照し、grouped$Groupedに従ってグループ化します。この操作を実行するためにsapply関数を使用しています。次に、結果の出力を元のdata.frameに結合します。
grouper<-as.character(sapply(as.character(bill.data$BillSection[1:100]), # for the first 100 records of the data.frame bill.data
function(x)grouped[grouped$Original==x,2])) # take the second column, i.e. Grouped, for the corresponding "TRUE" value in Original
cbind(bill.data[1:100,],as.data.frame(grouper))
上記のコードは期待どおりに機能しますが、データベース全体に適用すると遅くなり、10,000,000の一意のレコードを超えます。この方法に代わる方法はありますか?plyrを使用できることは知っていますが、sapplyよりもさらに低速です(私は思います)。data.tableでそれを理解しようとしていましたが、運がありませんでした。どんな提案も役に立ちます。私はこれをPythonでコーディングすることにオープンですが、これは私が初めて使用するものですが、大規模なデータセットを頻繁に処理しているため、Rよりもはるかに高速です。私は、Rがこれを十分に速く実行できるかどうかを知りたかったのです。
ありがとう!