R数据表根据时间查找上升趋势和下降趋势

时间:2019-07-29 15:16:51

标签: r datatable rstudio dt

我有一个R DT,其中我的数据从0到100和100到0不等。 我需要找到从80到100的上升趋势,从100到80的下降趋势。这应该是一个不容改变的变化。喜欢 80,81,84,87,90100,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), ][]

0 个答案:

没有答案