Я пытаюсь сделать пользовательскую функцию очереди в R. Основой c очереди является одна очередь с несколькими "серверами". Я написал код ниже для одной очереди и одной очереди, но мне трудно написать функцию для одной очереди с несколькими серверами.
Функция одной очереди Один сервер:
queueOne <- function(data) {
len <- length(data$serviceTime)
#vector for departure of customer
depart <- c()
#vector for start of customer
startService <- c()
#timer of system
timer <- 0
for (i in 1:len) {
#getting start of customer which is max between arrival time of customer or time of system
start <- max(timer, data$time[i])
#updating start of customer vector
startService <- c(startService, start)
#getting departure of customer time
end <- round(sum(start, data$serviceTime[i]),2)
#updating departure vector
depart <- c(depart, end)
#updating the time of the system
timer <- end
print(paste("queue time:",data$time[i],"start time:",start,"Service time:",data$serviceTime[i],"End Time:",timer))
}
#creating a dataframe to return
departDF <- data.frame(depart)
startDF <- data.frame(startService)
queueData <- data %>%
bind_cols(startDF) %>%
bind_cols(departDF)
return(queueData)
}