【发布时间】:2014-05-22 07:06:12
【问题描述】:
如何查询同一ID内一天的FIRST和LAST记录?
样本数据:
sample<- data.frame(
id=c("A","A","A","A","A","C","C","C","D","D","E","E"),
location=c("US","US","US","US","SINGAPORE","CHINA","CHINA","JAPAN","JAPAN","JAPAN","SINGAPORE","SINGAPORE"),
Date =c("03/03/2013","03/03/2013","04/03/2013","04/03/2013","05/03/2013","03/03/2013","04/03/2013","04/03/2013","05/03/2013","06/03/2013","05/03/2013","05/03/2013")
)
目前我尝试使用找出第一条和最后一条记录。 但似乎效果不太好。
尝试过的代码:
sample$FIRST <- !duplicated(sample$id)
sample$LAST<-FALSE
sample$LAST <- c(sample$id[-nrow(sample)]==sample$id[-1],TRUE)
如何实现代码以达到我的预期结果?
预期结果:
sample<- data.frame(
id=c("A","A","A","A","A","C","C","c","D","D","E","E"),
Date=c("03/03/2013","03/03/2013","04/03/2013","04/03/2013","05/03/2013","03/03/2013","04/03/2013","04/03/2013","05/03/2013","06/03/2013","05/03/2013","05/03/2013"),
FIRST =c("TRUE","FALSE","TRUE","FALSE","TRUE","TRUE","TRUE","FALSE","TRUE","TRUE","TRUE","FALSE"),
LAST =c("FALSE","TRUE","FALSE","TRUE","TRUE","TRUE","FALSE","TRUE","TRUE","TRUE","FALSE","TRUE")
)
提前谢谢... 注意:由于数据量很大,需要考虑优化...
【问题讨论】:
标签: r loops optimization logic