好的所以我有两个数组/表,我正在合并TIMEDATE。
我正在使用此代码:
Long_LA <- merge(x = LongArray,y = Long,by="TIMEDATE", all.x = TRUE)
这是两个合并在一起的样子:
现在......我正在尝试根据SegmentDuration_Seconds为X行添加基于“Segment Activity”的Activity代码。
我知道在Excel中我只是填写,我知道在R中执行此功能的能力,但我无法让它工作。 那里有人可以帮助我吗?
答案 0 :(得分:1)
使用非equi连接data.table
包可以更容易地完成此操作,如下所示。内联更多解释
#create the end timedate as well before non-equi join
Long[, ENDTIMEDATE := STARTTIMEDATE + SEGMENTDURATION_SECONDS]
#non-equi joins
LongArray[Long, Activity_Code := SEGMENTACTIVITY, on=.(TIMEDATE >= STARTTIMEDATE, TIMEDATE <= ENDTIMEDATE)]
数据:
library(data.table)
LongArray <- data.table(TIMEDATE=seq(as.POSIXct("2018-02-15"), by="1 min", length.out=14),
Order=1:14)
Long <- data.table(STARTTIMEDATE=as.POSIXct("2018-02-15"), SEGMENTACTIVITY=1, SEGMENTDURATION_SECONDS=6300)