Максимальная дата на основе даты и метки времени - PullRequest
1 голос
/ 16 апреля 2020

Может ли кто-нибудь помочь в решении проблемы ниже в 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

Здесь следует выбрать максимальную дату вместе с отметкой времени .

Ответы [ 2 ]

1 голос
/ 16 апреля 2020

В base R мы можем сделать

DF1[which.max(DF1$Date),, drop = FALSE]
1 голос
/ 16 апреля 2020

возможно, это работает:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...