我从一个数据集开始,该数据集具有数字列(在我的例子中是时间,但采用数字格式)、时间戳的特定事件和 ID。我希望运行一些代码来扩展数据框以填充数字序列,同时复制事件列(以及任何其他相关列)。我想通过 ID 来运行它,这样我就不会填补 ID 之间的空白。
这是我开始使用的数据的简化示例。我想分别填充每个 ID 的“值”列的序列,使用每个“事件”第一行的数据完成每个新行。
a<-c("162", "164", "169", "171", "174", "188", "191", "198","200")
b<-c("start1","end1","start2", "event", "end2", "start1", "end1", "start2", "end2")
c<-c("A","A","A", "A", "A", "B", "B", "B", "B")
original<-data.table(value = a, event = b, ID = c)
Run Code Online (Sandbox Code Playgroud)
这是我的最终目标的重构:
agoal<-c(seq(from = 162, to = 174), seq(from = 188, to = 200))
bgoal<-c("start1","start1","end1","end1", "end1", "end1", "end1",
"start2", "start2", "event", "end2","end2", "end2",
"start1", "start1", "start1", "end1", "end1", "end1", "end1", "end1", "end1", "end1",
"start2", "start2","end2")
cgoal<-c(rep("A",13), rep("B",13))
goal<-data.table(value = agoal, event …Run Code Online (Sandbox Code Playgroud)