【发布时间】:2016-06-12 18:00:25
【问题描述】:
我创建了一个在相当大的数据集上执行的 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 分钟后停止时,它仍在运行,而且还远未完成!
我想知道如何在这里使用 apply 系列函数中的一个来替代以更快地完成。
谢谢!
【问题讨论】:
-
示例数据集在这里会很有帮助。请看how to write a great R reproducible example
标签: r matrix while-loop apply