繁体   English   中英

查找两个不同时间之间是否存在时间,输入问题

[英]Find if a time exists between two different times, type issue

我有一个 dataframe

df <- structure(list(TIME = c("11:15:00", NA, "15:15:00", "12:00:00", 
"18:40:00", "18:15:00", "7:10:00", "15:58:00", "10:00:00", "10:00:00"
)), row.names = c(NA, -10L), class = c("tbl_df", "tbl", "data.frame"
))

我基本上想创建一个新变量,它告诉我时间是否在某个组中。

我写了以下但不正确,尝试更改为 as.POSICxt 但没有骰子。

df <- df %>% 
  mutate(time_groups  = ifelse(between(as.POSIXct(TIME),00:00, 5:59), 1,
                        ifelse(between(as.POSIXct(TIME),06:00, 8:59), 2,
                        ifelse(between(as.POSIXct(TIME),09:00,11:59), 3,
                        ifelse(between(as.POSIXct(TIME),12:00,14:59), 4,
                        ifelse(between(as.POSIXct(TIME),15:00,17:59), 5,
                        ifelse(between(as.POSIXct(TIME),18:00,23:59), 6,
), NA)

您可以使用findInterval function:

library(tidyverse)
library(lubridate)

a <- c("00:00","5:59", "8:59", "11:59", "14:59", "17:59", "23:59")
b <- ymd_hm(paste(Sys.Date(), a))

df %>% 
  mutate(Interval = findInterval(ymd_hms(paste(Sys.Date(), TIME)), b))

   TIME     Interval
  <chr>       <int>
 1 11:15:00        3
 2 NA             NA
 3 15:15:00        5
 4 12:00:00        4
 5 18:40:00        6
 6 18:15:00        6
 7 7:10:00         2
 8 15:58:00        5
 9 10:00:00        3
10 10:00:00        3

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM