我有一个R DT,其中我的数据从0到100和100到0不等。
我需要找到从80到100的上升趋势,从100到80的下降趋势。这应该是一个不容改变的变化。喜欢
80,81,84,87,90
和100,99,87,86,85
。并且这些不是必需的80,87,85,88,89,93,92
等。它应该是连续的。我拥有的数据是YYYY-MM-DD HH:MM:SS格式的时间戳列和一个值字段。
我尝试过:
DT[, group_id := rleid(value >80 & value <100) ][]
cond1<-DT[(value >80 & value <100), ][, .(start = min(timestamp),end = max(timestamp),
min_value = min(value),max_value = max(value),
duration = as.numeric(max(timestamp)-min(timestamp),units='mins')),
by = .(group_id)][,group_id := NULL]
cond2<-DT[(value >80 & value <100), ][, .(start = min(timestamp),end = max(timestamp),
max_value = max(value),min_value = min(value),
duration = as.numeric(max(timestamp)-min(timestamp),units='mins')),
by = .(group_id)][,group_id := NULL]
#z<- cond1[(max_value <90), ][]
z<- cond2[(max_value >90), ][]