周期数据类型为R的If语句
在R中使用周期数据类型为R的If语句,r,time,lubridate,R,Time,Lubridate,在R中使用time类有时会有点挑战性 我的数据集是一列日时间(H/M/S)。然而,当我导入数据集时,R将其分类为chr 我想做的是创建一个附加列,如果时间在10.30.00之后,则该列的值等于1,否则0 通过lubridate,我成功地将数据转换为期间数据类型: db%>%dplyr::select(Time)%%>%mutate(Time=lubridate::hms(Time)) 然而,我不知道如何将if语句应用于classPeriod的结果列Time,如下所示: %%>%ifelse(时间
time
类有时会有点挑战性
我的数据集是一列日时间(H/M/S
)。然而,当我导入数据集时,R将其分类为chr
我想做的是创建一个附加列,如果时间在10.30.00
之后,则该列的值等于1
,否则0
通过lubridate,我成功地将数据转换为期间
数据类型:
db%>%dplyr::select(Time)%%>%mutate(Time=lubridate::hms(Time))
然而,我不知道如何将if语句应用于classPeriod
的结果列Time
,如下所示:
%%>%ifelse(时间>10小时30分钟,1,0)
不起作用
有没有关于如何完成这项简单任务的提示?非常感谢 您可以执行以下操作
library(dplyr)
library(lubridate)
data <- tibble(time = hms(c('10:29:30', '14:12:55')))
data %>%
mutate(after = if_else(time > hms('10:30:00'), 1, 0))
# time after
# <Period> <dbl>
# 1 10H 29M 30S 0
# 2 14H 12M 55S 1
库(dplyr)
图书馆(lubridate)
数据%
变异(之后=如果其他(时间>hms('10:30:00'),1,0))
#之后
#
#1 10H 29M 30S 0
#2 14H 12M 55S 1
一个选项是使用as.integer强制执行integer
library(lubridate)
library(dplyr)
data %>%
mutate(after = as.integer(time > hms('10:30:00')))
# A tibble: 2 x 2
# time after
# <Period> <int>
#1 10H 29M 30S 0
#2 14H 12M 55S 1
库(lubridate)
图书馆(dplyr)
数据%>%
变异(之后=as.integer(时间>hms('10:30:00'))
#一个tibble:2x2
#之后
#
#1 10H 29M 30S 0
#2 14H 12M 55S 1
数据
数据在这种情况下,您还可以使用+(时间>hms('10:30:00'))
data <- tibble(time = hms(c('10:29:30', '14:12:55')))