Проблема с вложенным циклом в R - PullRequest
0 голосов
/ 23 мая 2018

Я пытаюсь попрактиковаться с R, воспроизводя алгоритм, который они дали нам в классе для количественного анализа производительности систем.Выходными данными являются длина очереди (Q), пропускная способность (X) и время обслуживания (R) для определенного количества элементов (n) в системе и определенного количества машин (k).Я начал с упрощенной версии, когда число машин = 1 и код работает.

N1 <-c(1,2,3)
K1 <- 1
Q <- 0 
R <- 0
D <- 3 # service rate of the machine
for(z in 1:length(N1))
{if(z==1){R[z] <-D} else{R[z] <- 3*(1+Q[z-1])}
X<- z/R[z];
Q[z] <- X*R[z]}

Затем я попробовал 4 машины.D обозначает скорость обслуживания каждой машины.Итак, я создал вложенный цикл.Код следующий.

N1 <-c(1,2)
K <- c(1,2,3,4)
D <- c(3,4,3,6) 
Q <- 0 
R <- 0
X <-0 
for(z in 1:length(N1)) 
  {for(k in 1:length(K))
  {if(z==1){R[k,z] <-D[k]} else{R[k,z] <- D[k]*(1+Q[k,z-1])}
  X[z]<- z/sum(R[z]); 
  if(z==1){Q[k,z] <- X[z]*R[k,z]} else {Q[k,z] <- X[z]*R[k,z]}
 }}

Несмотря на то, что я исправил z == 1, я получаю сообщение об ошибке: «Ошибка в R [k, z] <- D [k]: неверное количество индексов в матрице» Я не уверенкак действовать, и я был бы признателен за любую помощь.Просто сообщите мне, если понадобится больше деталей.Спасибо большое.</p>

1 Ответ

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

Вы должны выделить 2-мерную матрицу R

Использование:

R <- matrix(nrow=length(K), ncol=length(N1))

Вместо:

R <- 0
...