分档星级和结束时间之间的经过分钟数同一日期

问题描述

我有许多开始和结束时间。我将时间的一部分分配给 15 分钟的 bin (4 / hr)。每个 bin 将包含分配给该 bin 的 0、15 或

到达

出发

times

对于每个到达、离开对,所需的输出一个 96 个值 0:15 的向量。 我可以看到一种使用 for 循环执行此操作的方法,正在寻找更优雅的解决方案。 有什么想法吗? 提前致谢。

解决方法

我可以看到一种使用 for 循环执行此操作的方法,正在寻找更优雅的解决方案。有什么想法吗?

通常我们可以使用 apply 函数来代替循环,这你当然知道。例如:

# convert the POSIX times to the minutes of the day
dayminutes = mapply(function (r) (as.numeric(r)/60)%%(60*24),times)
#     arrival depart
#[1,]     161    490
#[2,]     323    439
#[3,]     359    616
#[4,]     424    728
#[5,]     490    934

# use "cut" to divide the ranges arrival:(depart-1) into 15 min. intervals over the day
apply(dayminutes,1,function(r) as.vector(summary(cut(r['arrival']:(r['depart']-1),0:(4*24)*15,right=F))))

结果是:

      [,1] [,2] [,3] [,4] [,5]
 [1,]    0    0    0    0    0
 [2,]    0    0    0    0    0
 [3,]    0    0    0    0    0
 [4,]    0    0    0    0    0
 [5,]    0    0    0    0    0
 [6,]    0    0    0    0    0
 [7,]    0    0    0    0    0
 [8,]    0    0    0    0    0
 [9,]    0    0    0    0    0
[10,]    0    0    0    0    0
[11,]    4    0    0    0    0
[12,]   15    0    0    0    0
[13,]   15    0    0    0    0
[14,]   15    0    0    0    0
[15,]   15    0    0    0    0
[16,]   15    0    0    0    0
[17,]   15    0    0    0    0
[18,]   15    0    0    0    0
[19,]   15    0    0    0    0
[20,]   15    0    0    0    0
[21,]   15    0    0    0    0
[22,]   15    7    0    0    0
[23,]   15   15    0    0    0
[24,]   15   15    1    0    0
[25,]   15   15   15    0    0
[26,]   15   15   15    0    0
[27,]   15   15   15    0    0
[28,]   15   15   15    0    0
[29,]   15   15   15   11    0
[30,]   15    4   15   15    0
[31,]   15    0   15   15    0
[32,]   15    0   15   15    0
[33,]   10    0   15   15    5
[34,]    0    0   15   15   15
[35,]    0    0   15   15   15
[36,]    0    0   15   15   15
[37,]    0    0   15   15   15
[38,]    0    0   15   15   15
[39,]    0    0   15   15   15
[40,]    0    0   15   15   15
[41,]    0    0   15   15   15
[42,]    0    0    1   15   15
[43,]    0    0    0   15   15
[44,]    0    0    0   15   15
[45,]    0    0    0   15   15
[46,]    0    0    0   15   15
[47,]    0    0    0   15   15
[48,]    0    0    0   15   15
[49,]    0    0    0    8   15
[50,]    0    0    0    0   15
[51,]    0    0    0    0   15
[52,]    0    0    0    0   15
[53,]    0    0    0    0   15
[54,]    0    0    0    0   15
[55,]    0    0    0    0   15
[56,]    0    0    0    0   15
[57,]    0    0    0    0   15
[58,]    0    0    0    0   15
[59,]    0    0    0    0   15
[60,]    0    0    0    0   15
[61,]    0    0    0    0   15
[62,]    0    0    0    0   15
[63,]    0    0    0    0    4
[64,]    0    0    0    0    0
[65,]    0    0    0    0    0
[66,]    0    0    0    0    0
[67,]    0    0    0    0    0
[68,]    0    0    0    0    0
[69,]    0    0    0    0    0
[70,]    0    0    0    0    0
[71,]    0    0    0    0    0
[72,]    0    0    0    0    0
[73,]    0    0    0    0    0
[74,]    0    0    0    0    0
[75,]    0    0    0    0    0
[76,]    0    0    0    0    0
[77,]    0    0    0    0    0
[78,]    0    0    0    0    0
[79,]    0    0    0    0    0
[80,]    0    0    0    0    0
[81,]    0    0    0    0    0
[82,]    0    0    0    0    0
[83,]    0    0    0    0    0
[84,]    0    0    0    0    0
[85,]    0    0    0    0    0
[86,]    0    0    0    0    0
[87,]    0    0    0    0    0
[88,]    0    0    0    0    0
[89,]    0    0    0    0    0
[90,]    0    0    0    0    0
[91,]    0    0    0    0    0
[92,]    0    0    0    0    0
[93,]    0    0    0    0    0
[94,]    0    0    0    0    0
[95,]    0    0    0    0    0
[96,]    0    0    0    0    0