【发布时间】:2014-06-24 19:24:05
【问题描述】:
我在 R 中有一个 data.table,其中包含在不同时间点收集的每个用户的多个状态值。我想比较连续时间点的状态值,并在状态发生变化时用标志更新行。请参阅下面的示例
DT_A <- data.table(sid=c(1,1,2,2,2,3,3), date=as.Date(c("2014-06-22","2014-06-23","2014-06-22","2014-06-23", "2014-06-24","2014-06-22","2014-06-23")), Status1 = c("A","B","A","A","B","A","A"), Status2 = c("C","C","C","C","D","D","E"))
DT_A_Final <- data.table(sid=c(1,1,2,2,2,3,3), date=as.Date(c("2014-06-22","2014-06-23","2014-06-22","2014-06-23", "2014-06-24","2014-06-22","2014-06-23")), Status1 = c("0","1","0","0","1","0","0"), Status2 = c("0","0","0","0","1","0","1"))
原始数据表DT_A是
sid date Status1 Status2
1 1 2014-06-22 A C
2 1 2014-06-23 B C
3 2 2014-06-22 A C
4 2 2014-06-23 A C
5 2 2014-06-24 B D
6 3 2014-06-22 A D
7 3 2014-06-23 A E
最终需要的数据表是DT_A_final
sid date Status1 Status2
1 1 2014-06-22 0 0
2 1 2014-06-23 1 0
3 2 2014-06-22 0 0
4 2 2014-06-23 0 0
5 2 2014-06-24 1 1
6 3 2014-06-22 0 0
7 3 2014-06-23 0 1
请帮助我如何实现这一目标?
【问题讨论】:
标签: r data.table