【发布时间】:2017-02-01 14:54:41
【问题描述】:
我有两组数据:
第一组:
patient<-c("A","A","B","B","C","C","C","C")
arrival<-c("11:00","11:00","13:00","13:00","14:00","14:00","14:00","14:00")
lastRow<-c("","Yes","","Yes","","","","Yes")
data1<-data.frame(patient,arrival,lastRow)
另一组数据:
patient<-c("A","A","A","A","B","B","B","C","C","C")
availableSlot<-c("11:15","11:35","11:45","11:55","12:55","13:55","14:00","14:00","14:10","17:00")
data2<-data.frame(patient, availableSlot)
我想向第一个数据集添加一列,这样对于每个患者的最后一行,它会显示可用的插槽,即 最接近到达时间:
结果是:
patient arrival lastRow availableSlot
A 11:00
A 11:00 Yes 11:15
B 13:00
B 13:00 Yes 12:55
C 14:00
C 14:00
C 14:00
C 14:00 Yes 14:00
如果有人能告诉我如何在 R 中实现这一点,我将不胜感激。
【问题讨论】:
-
您可能需要先将包含小时数的列转换为日期类
-
所以这个?
merge(data1, data2[!duplicated(data2$patient),], by = 'patient')假设您的data2由arrival订购 -
@Sotos 不,这只是幸运。 OP 说“最接近”,恰好与这里的第一个相吻合。
-
啊...我错过了最近的部分