указать временные интервалы в ограничениях - PullRequest
0 голосов
/ 07 мая 2018

Я пытаюсь классифицировать смены на основе времени окончания смены в R. Для этого я использую ограничения для разных временных интервалов, но я не знаю, как указать их в ограничении. Я уже пробовал "" и как .POSIXct, но оба не работали.

Это код, который я использую:

> for (i in 1:length(SHIFTS2)){
  if (SHIFTS2$ENDTIME > 10:00:00 && SHIFTS2$ENDTIME <= 18:00:00){
    SHIFTS2$ENDCAT[i] <- 1
  }else if (SHIFTS2$ENDTIME > 18:00:00 && SHIFTS2$ENDTIME <= 02:00:00){
    SHIFTS2$ENDCAT[i] <- 2
  }else{
    SHIFTS2$ENDCAT[i] <- 3
  }
}

Надеюсь, кто-нибудь может мне помочь!

1 Ответ

0 голосов
/ 07 мая 2018

Вот пример того, как это будет работать, если ваш ENDTIME-столбец определен как символ.

start <- c("08:00:00", "16:00:00", "17:00:00", "19:00:00", "12:00:00", "06:00:00", "23:00:00")
end <- c("14:00:00", "23:00:00", "22:00:00", "01:00:00", "18:00:00", "12:00:00", "04:00:00")

SHIFTS2 <- data.frame(as.character(start), as.character(end))
SHIFTS2$ENDCAT <- ""

colnames(SHIFTS2)[1:2] <- c("STARTTIME", "ENDTIME")

for (i in 1:nrow(SHIFTS2)){
  endtime <- as.numeric(substring(SHIFTS2$ENDTIME[i], first = 1, last = 2))
  if (endtime > 10 && endtime <= 18){
    SHIFTS2$ENDCAT[i] <- 1
  }else if ((endtime > 18 && endtime <= 23) || (endtime >= 0 && endtime <= 2)) {
    SHIFTS2$ENDCAT[i] <- 2
  }else{
    SHIFTS2$ENDCAT[i] <- 3
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...