R: заполнить матрицу в соответствии с условием - PullRequest
1 голос
/ 15 апреля 2020

На стоянке есть только две зарядные станции для электромобилей c. Известно время прибытия и отъезда из автомобилей, а также время зарядки. Одновременно можно заряжать только два автомобиля.

    car<-rep(1:5)
arrival<-c("8:00","8:00", "9:00","10:00","10:00")
leaving<-c("10:00","12:00", "11:00", "11:00", "12:00")
charging_time_h<-c(2,4,2,1,2)
df<-cbind(car,arrival, leaving, charging_time_h)

enter image description here

#Staying time at the parking

mat1<-matrix(0, ncol = 7, nrow = 5)
colnames(mat1) <- c("8:00", "9:00", "10:00", "11:00", "12:00", "13:00", "14:00")
rownames(mat1) <- c(1:5)

for(i in 1:length(car)) mat1[i,which(colnames(mat1) == arrival[i]):which(colnames(mat1) == leaving[i])]=1

mat1 <- rbind(mat1, 'Cars at th eparking' = colSums(mat1))

enter image description here

«Автомобили на стоянке» - общее количество автомобилей на стоянке одновременно.

Если третий автомобиль прибывает, когда обе зарядные станции заняты, он может дождаться следующей бесплатной зарядной станции. , Если третий автомобиль покидает парковку раньше, он остается незаряженным. В результате я хотел бы получить эту матрицу: enter image description here

4-й автомобиль покинул парковку незаряженным - состояние «ЛОЖЬ». Пятая машина - «ИСТИНА / ЛОЖЬ», потому что зарядка не может быть завершена. Не могли бы вы помочь мне?

Большое спасибо заранее! С уважением, Инна

...