【发布时间】:2021-09-15 05:38:27
【问题描述】:
我从一个数据集开始,该数据集有一个数字列(在我的例子中是时间,但采用数字格式)、一个特定的时间戳事件和一个 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)
这是对我最终目标的重构:
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 = bgoal, ID = cgoal)
对不起,如果这不是很清楚!
【问题讨论】:
-
感谢您的精彩回答!这些效果很好,但我无法将它们应用于最终大小的实际数据集,而不会出现“错误:向量内存已用尽(达到限制?)”
标签: r dataframe time dplyr sequence