R “转换慢”;而";“循环到”;套用-类型函数
我创建了一个while循环,它在一个相当大的数据集上执行。循环如下所示:R “转换慢”;而";“循环到”;套用-类型函数,r,matrix,while-loop,apply,R,Matrix,While Loop,Apply,我创建了一个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 &
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
}
简要说明,对于日期和酒店的每个组合(从其他两个数据框中提取),从列London.Bookings$No.of.Rooms
中生成总和,并将其存入矩阵的相应行中
循环似乎运行无误,但在5分钟后停止时,它仍在运行,且远未完成
我想知道如何使用apply系列函数中的一个来替代这里的函数,以更快地完成
谢谢 使用library
dplyr
,您可以执行以下操作(假设您的输入数据框有这样的列名-根据您的代码/问题进行模糊解释):
可能,
xtabs(No.of.Rooms ~ Stay.Date + Legacy.Hotel, data = London.Bookings)
让你得到与你想要的相似的东西 示例数据集在这里非常有用。请看
library(dplyr)
London.Bookings %>% group_by(Legacy.Hotel.Code, Stay.Date) %>% summarise(Total.No.of.Rooms = sum(No.of.Rooms))
xtabs(No.of.Rooms ~ Stay.Date + Legacy.Hotel, data = London.Bookings)