Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 仅选择最近的POSIXlt日期/时间_R - Fatal编程技术网

R 仅选择最近的POSIXlt日期/时间

R 仅选择最近的POSIXlt日期/时间,r,R,这类似于这个问题: 区别在于,我使用的是%Y%m%d%H%m格式,所以是日期加时间。在本例中,准确的时间很重要 我们可以使用以下数据框架和方法作为一个非常简短的示例: Event <- rep(1, 3) Location <- c("a", "b", "c") Date <- c(181905101300, 181905101453, 181905101613) (df <- data.frame(Event, Location, Date)) Event Lo

这类似于这个问题:

区别在于,我使用的是%Y%m%d%H%m格式,所以是日期加时间。在本例中,准确的时间很重要

我们可以使用以下数据框架和方法作为一个非常简短的示例:

Event <- rep(1, 3)
Location <- c("a", "b", "c")
Date <- c(181905101300, 181905101453, 181905101613)

(df <- data.frame(Event, Location, Date))

  Event Location         Date
1     1        a 181905101300
2     1        b 181905101453
3     1        c 181905101613

(df %>% 
  group_by(Event) %>%
  dplyr::slice(which.max(Date)))

# A tibble: 1 x 3
# Groups:   Event [1]
  Event Location         Date
  <dbl> <fct>           <dbl>
1     1 c        181905101613


Event在这种情况下,您可能需要使用lubridate

library(tidyverse)
library(lubridate)

Event <- c(1,1,2)
Location <- c("a", "b", "c")
Date <- c(181905101300, 181905101453, 181905101613)

df <- data.frame(Event, Location, Date)

df %>% 
  mutate(time_hour = ymd_hm(Date)) %>% 
  group_by(Event) %>%
  top_n(1,wt = time_hour)
库(tidyverse)
图书馆(lubridate)

我认为问题在于您使用的是
POSIXlt
。如果切换到
POSIXct
,事情应该会好起来。正如答案所示,
lubridate
包使这一过程变得简单。使用
df$Date
library(tidyverse)
library(lubridate)

Event <- c(1,1,2)
Location <- c("a", "b", "c")
Date <- c(181905101300, 181905101453, 181905101613)

df <- data.frame(Event, Location, Date)

df %>% 
  mutate(time_hour = ymd_hm(Date)) %>% 
  group_by(Event) %>%
  top_n(1,wt = time_hour)