我有兩個dataframes:df_workingFile和df_groupIDs快速方式
df_workingFile:
ID | GroupID | Sales | Date
v | a1 | 1 | 2011
w | a1 | 3 | 2010
x | b1 | 8 | 2007
y | b1 | 3 | 2006
z | c3 | 2 | 2006
df_groupIDs:
GroupID | numIDs | MaxSales
a1 | 2 | 3
b1 | 2 | 8
c3 | 1 | 2
對於df_groupIDs,我想獲取該組中最高銷售額的活動的ID和日期。所以組「a1」在df_workingFile,「v」和「w」中有2個事件。我想確定事件「w」具有最大銷售價值並將其信息帶入df_groupIDs。最終的輸出應該是這樣的:
GroupID | numIDs | MaxSales | ID | Date
a1 | 2 | 3 | w | 2010
b1 | 2 | 8 | x | 2007
c3 | 1 | 2 | z | 2006
現在,這裏的問題。我編寫了這樣的代碼,但是當我處理50-100K行數據集時,它效率非常低,需要永久處理。我需要幫助弄清楚如何重寫我的代碼以提高效率。這是我目前有:
i = 1
for (groupID in df_groupIDs$groupID) {
groupEvents <- subset(df_workingFile, df_workingFile$groupID == groupID)
index <- match(df_groupIDs$maxSales[i], groupEvents$Sales)
df_groupIDs$ID[i] = groupEvents$ID[index]
df_groupIDs$Date[i] = groupEvents$Date[index]
i = i+1
}