我正在尝试根据R中的班次结束时间对班次进行分类。 为此,我使用不同时间间隔的约束,但我不知道如何在约束中指定它们。我已经尝试了#34;"和as.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
}
}
希望有人可以帮助我!
答案 0 :(得分:0)
以下是将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
}
}