我創建了一個while循環,該循環正在跨越一個可調整的數據集執行。環路是這樣:將緩慢的「WHILE」循環轉換爲「應用」型函數
i = 1
while(i<=m){
Date = London.Events$start_time[i]
j=1
while(j<=n){
Hotel = London.Hotels$AS400.ID[j]
Day.Zero[i,j] = sum(London.Bookings$No.of.Rooms[London.Bookings$Stay.Date == Date & London.Bookings$Legacy.Hotel.Code == Hotel])
j=j+1
}
i=i+1
}
其中:
m = 9957 #Number of Events
n = 814 #Number of Hotels
Day.Zero = as.data.frame(matrix(0, 9957, 814))
簡言之解釋的,對於日期和酒店(來自兩個其他數據幀拉動)的每一種組合,從柱London.Bookings$No.of.Rooms
和存款產生的總和那到矩陣的相應的行。
循環似乎運行沒有錯誤,但是當它在5分鐘後停止+它仍然在運行並且遠遠沒有完成!
我想知道如何應用功能家族中的一個功能可以作爲更快的完成替代。
謝謝!
示例數據集在這裏真的很有用。請參閱[如何編寫一個很好的R可重現示例](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) – C8H10N4O2