首页 > 解决方案 > 基于日期和时间戳的最大日期

问题描述

有人可以帮助解决 R 中的以下问题吗

DF1:

Item   Date
A      2020-04-08 03:36:28
B      2020-04-08 05:16:28

输出:

Item   Date
B      2020-04-08 05:16:28

在这里,应选择最大日期和时间戳。

标签: r

解决方案


也许这有效:

library(tidyverse)
now <- Sys.time()
#"2020-04-16 18:04:30 BST"
now2 <- as.POSIXlt(now)
now <- Sys.time()
now3 <- as.POSIXlt(now)
# [1] "2020-04-16 18:06:23 BST"
df <- data.frame(group = c("a", "b"), 
                 time = c(now2, now3))
str(df)

df %>% 
  slice(which.max(time)) 
#   group                time
# 1     b 2020-04-16 18:06:23

或者,如果您有字符变量,请先转换为as.POSIXct

df <- data.frame(group = c("a", "b"), 
                 time = c("2020-04-08 03:36:28", "2020-04-08 05:16:28"))
df <- df %>% 
  mutate(time2 = as.POSIXct(time)) %>% 
  select(-time) 

df %>% 
  slice(which.max(time2)) 
#   group               time2
# 1     b 2020-04-08 05:16:28

推荐阅读