【问题标题】:Get data between certain timestamps in R获取R中某些时间戳之间的数据
【发布时间】:2014-04-26 00:01:02
【问题描述】:

我有以下数据框:

>head(d)
Smed                Time TTFB
1  186 2014-03-19 20:13:00    6
2  196 2014-03-19 21:23:00    0
3  186 2014-03-19 19:33:00   22
4  186 2014-03-19 14:43:00  134
5  186 2014-03-19 23:53:00   36
> str(d)
 $ Smed          : Factor w/ 71 levels "1033","1038",..: 14 16 14 14 14 14 47 14 14 68 ...
 $ Time          : POSIXct, format: "2014-03-19 20:13:00" "2014-03-19 20:13:00" "2014-03-19 20:13:00" "2014-03-19 20:13:00" ...
 $ TTFB          : int  6 0 22 134 36 96 61 37 28 19 ...

我如何与 POSIXct 时间格式进行时间比较以获取 18:13 到 23:20 之间的数据

【问题讨论】:

    标签: r datetime time-series posixct


    【解决方案1】:

    POSIXct 理解 <>,所以你只需这样做:

    set.seed(1)
    d <- data.frame(Time=as.POSIXct("2014-03-19")+24*60*60*runif(100))
    index <- as.POSIXct("2014-03-19 18:00:00")<=d$Time &
             d$Time<=as.POSIXct("2014-03-19 23:20:00")
    d[index,]
    

    【讨论】:

      【解决方案2】:

      试试类似的东西

      start <- as.POSIXct("2014-03-19 18:13:00")
      end <- as.POSIXct("2014-03-19 23:10:00")
      d[start < d$Time & d$Time < end, ]
      

      希望对你有帮助

      【讨论】:

      • 这对我不起作用 > d[start (或 0-length row.names)
      • 您的data.frame d 是否有可能在开始和结束之间没有任何时间?这对我来说可以;如果我使用例如 Stephan 的 data.frame,我会得到 25 行。
      猜你喜欢
      • 2018-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-13
      相关资源
      最近更新 更多