R 修改日期,为小于时间戳的所有时间创建列

R 修改日期,为小于时间戳的所有时间创建列,r,datetime,dplyr,lubridate,R,Datetime,Dplyr,Lubridate,我有一些数据如下所示: # A tibble: 754 x 2 time v1 <dttm> <dbl> 1 2020-04-16 09:45:00 175. 2 2020-04-16 10:00:00 174. 3 2020-04-16 10:15:00 174. 4 2020-04-16 10:30:00 173. 5 2020-04-16 10:45:00 174. 因此,当

我有一些数据如下所示:

# A tibble: 754 x 2
   time                 v1
   <dttm>              <dbl>
 1 2020-04-16 09:45:00  175.
 2 2020-04-16 10:00:00  174.
 3 2020-04-16 10:15:00  174.
 4 2020-04-16 10:30:00  173.
 5 2020-04-16 10:45:00  174.
因此,当数据小于10:30时,所有
时间
的预期输出将为
1
(在所有天内),所有
时间
之后的预期输出将为
0

数据:


df您不必对数据进行分组。只需使用
格式
即可重新设置时间格式:

df %>% 
  mutate(lessThanTenThirty = if_else(format(time, '%H:%M') < "10:30", 1, 0))

# A tibble: 754 x 3
   time                   v1 lessThanTenThirty
   <dttm>              <dbl>             <dbl>
 1 2020-04-16 09:45:00  175.                 1
 2 2020-04-16 10:00:00  174.                 1
 3 2020-04-16 10:15:00  174.                 1
 4 2020-04-16 10:30:00  173.                 0
 5 2020-04-16 10:45:00  174.                 0
 6 2020-04-16 11:00:00  175.                 0
 7 2020-04-16 11:15:00  175.                 0
 8 2020-04-16 11:30:00  175.                 0
 9 2020-04-16 11:45:00  176.                 0
10 2020-04-16 12:00:00  176.                 0
df%>%
变异(lessThanTenThirty=if_else(格式(时间,%H:%M')<“10:30”,1,0))
#A tibble:754x3
时间v1小于初始值
1 2020-04-16 09:45:00  175.                 1.
2 2020-04-16 10:00:00  174.                 1.
3 2020-04-16 10:15:00  174.                 1.
4 2020-04-16 10:30:00  173.                 0
5 2020-04-16 10:45:00  174.                 0
6 2020-04-16 11:00:00  175.                 0
7 2020-04-16 11:15:00  175.                 0
8 2020-04-16 11:30:00  175.                 0
9 2020-04-16 11:45:00  176.                 0
10 2020-04-16 12:00:00  176.                 0

带有
as.ITime的选项

library(data.table)
library(dplyr)
df %>% 
   mutate(lessThanTenThirty = +(as.ITime(time) < as.ITime("10:30:00")))
库(data.table)
图书馆(dplyr)
df%>%
突变(lessThanTenThirty=+(as.ITime(时间)
df %>% 
  mutate(lessThanTenThirty = if_else(format(time, '%H:%M') < "10:30", 1, 0))

# A tibble: 754 x 3
   time                   v1 lessThanTenThirty
   <dttm>              <dbl>             <dbl>
 1 2020-04-16 09:45:00  175.                 1
 2 2020-04-16 10:00:00  174.                 1
 3 2020-04-16 10:15:00  174.                 1
 4 2020-04-16 10:30:00  173.                 0
 5 2020-04-16 10:45:00  174.                 0
 6 2020-04-16 11:00:00  175.                 0
 7 2020-04-16 11:15:00  175.                 0
 8 2020-04-16 11:30:00  175.                 0
 9 2020-04-16 11:45:00  176.                 0
10 2020-04-16 12:00:00  176.                 0
library(data.table)
library(dplyr)
df %>% 
   mutate(lessThanTenThirty = +(as.ITime(time) < as.ITime("10:30:00")))