【问题标题】:Flexible time selection灵活的时间选择
【发布时间】:2017-05-07 06:11:33
【问题描述】:

我有多个客户的交易数据,因此每个数据点都包含发生交易的Time

现在,当我获得新数据点时,我想通过灵活的“小时”选择为特定客户的数据子集。

这是一个例子df

Cust_id    Date           Time 
1               5/1/17       03:12:22       
1               6/1/17       23:45:17
1               6/1/17       21:55:45

假设我的新数据点属于Cust_id=1 并出现在02:33:10。还假设我想对该客户在 +- 3 小时 范围内发生的所有交易进行子集化 - 无论它们发生在哪一天。在我的示例中,我应该对前两行进行子集化。

我该怎么做?

【问题讨论】:

    标签: r time


    【解决方案1】:

    这是通过base R的一种方式,

    p1 <- '02:33:10'
    d1$Time <- format(strptime(d1$Time, format="%H:%M:%S"), format = "%H:%M:%S")
    
    i1 <- format(strptime(p1, format="%H:%M:%S")+3*60*60, format = "%H:%M:%S")
    i2 <- format(strptime(p1, format="%H:%M:%S")-3*60*60, format = "%H:%M:%S")
    
    d1[d1$Time >= i2 | d1$Time <= i1,]
    
    #  Cust_id   Date     Time
    #1       1 5/1/17 03:12:22
    #2       1 6/1/17 23:45:17
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-06
      • 1970-01-01
      • 2019-06-06
      • 2018-11-09
      • 2013-10-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多