【问题标题】:extract records from a date.frame in R based on a date根据日期从 R 中的 date.frame 中提取记录
【发布时间】:2012-01-19 09:45:54
【问题描述】:

我有一个data.frame,如下:

dat <- structure(list(id = 1:4, date = structure(list(sec = c(0, 0, 
0, 0), min = c(0L, 0L, 0L, 0L), hour = c(0L, 0L, 0L, 0L), mday = 1:4, 
    mon = c(0L, 0L, 0L, 0L), year = c(110L, 110L, 110L, 110L), 
    wday = c(5L, 6L, 0L, 1L), yday = 0:3, isdst = c(0L, 0L, 0L, 
    0L)), .Names = c("sec", "min", "hour", "mday", "mon", "year", 
"wday", "yday", "isdst"), class = c("POSIXlt", "POSIXt")), name = c("george", 
"paul", "john", "ringo")), .Names = c("id", "date", "name"), row.names = c(NA, 
-4L), class = "data.frame")

要选择我可以使用的日期最早或最近的行:

分别为dat[(dat$date ==min(dat$date)),]dat[(dat$date ==max(dat$date)),]

有没有办法获得其他日期的记录,例如第二旧或第二最近的日期。

谢谢。

【问题讨论】:

    标签: r date


    【解决方案1】:

    您可以对 data.frame 进行排序并获取第一行或最后一行。

    dat <- dat[ order(dat$date), ]
    dat[1,]  # Oldest
    dat[2,]  # Second oldest
    n <- dim(dat)[1]
    dat[n,]  # Latest
    dat[n-1,] # Second most recent
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-19
      • 2023-04-07
      • 2014-10-30
      • 2018-02-07
      • 1970-01-01
      相关资源
      最近更新 更多