Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 在约束中指定时间间隔_R_Time_Constraints - Fatal编程技术网

R 在约束中指定时间间隔

R 在约束中指定时间间隔,r,time,constraints,R,Time,Constraints,我试图根据R中的班次结束时间对班次进行分类。 为了做到这一点,我对不同的时间间隔使用约束,但我不知道如何在约束中指定它们。我已经尝试了“”和as.POSIXct,但两者都不起作用 这是我正在使用的代码: > for (i in 1:length(SHIFTS2)){ if (SHIFTS2$ENDTIME > 10:00:00 && SHIFTS2$ENDTIME <= 18:00:00){ SHIFTS2$ENDCAT[i] <- 1 }

我试图根据R中的班次结束时间对班次进行分类。 为了做到这一点,我对不同的时间间隔使用约束,但我不知道如何在约束中指定它们。我已经尝试了“”和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
  }
}
>用于(1中的i:长度(移位2)){

如果(SHIFTS2$ENDTIME>10:00:00&&SHIFTS2$ENDTIME,下面是一个示例,如果将ENDTIME列定义为character,它将如何工作

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
  }
}

start我猜
SHIFTS2
是一个数据帧吗?如果是,您忘记在If(else If)语句中添加索引,例如
SHIFTS2$ENDTIME[I]
。我猜您得到的错误是,只能比较
SHIFTS2$ENDTIME
的第一个元素。但是,请提供有关您的数据的更多信息。@Tobias是的,SHIFTS2是我的数据帧,SHIFTS2$ENDTIME是以hms格式存储时间的列。我添加了索引,但仍然得到相同的错误。您有任何错误吗知道它可能是什么吗?请提供一些示例数据(如上所述)以及您收到的错误。列
ENDTIME
的数据类型是什么?它是字符吗?我们肯定需要有关您的数据的更多信息。