Здесь решение, оно использует два простых ifelse
, с dplyr
library
:
library(dplyr)
dat$Date <- as.POSIXct(dat$Date, format = "%m/%d/%Y %H:%M")
# this is needed in order to use the correct date format
dat %>%
mutate(v1 = ifelse(Date < "2018-03-29 18:52:47", 1, 0),
v2 = ifelse(Date >= "2018-03-29 18:52:47", 1, 0)) # this creates v1,v2
# RespondentID Date v1 v2
# 1 170721984 2018-03-29 09:26:00 1 0
# 2 170721984 2018-03-29 11:14:00 1 0
# 3 170721984 2018-03-29 18:52:00 1 0
# 4 170721984 2018-03-30 14:15:00 0 1
# 5 170721984 2018-03-30 17:43:00 0 1
Используемые данные:
tt <- "RespondentID Date Hour
170721984 03/29/2018 9:26:05
170721984 03/29/2018 11:14:55
170721984 03/29/2018 18:52:47
170721984 03/30/2018 14:15:08
170721984 03/30/2018 17:43:17"
dat <- read.table(text=tt, header=T, stringsAsFactors = F)
dat <- dat %>%
mutate(Date = trimws(paste0(Date, " ", Hour))) %>% # this just puts Date as in your example
select(-Hour)
# RespondentID Date
# 1 170721984 03/29/2018 9:26:05
# 2 170721984 03/29/2018 11:14:55
# 3 170721984 03/29/2018 18:52:47
# 4 170721984 03/30/2018 14:15:08
# 5 170721984 03/30/2018 17:43:17