Как я могу повторить эти две строки кода более 100 раз? - PullRequest
0 голосов
/ 30 января 2019

Я все еще новичок в мире программирования и ищу руководство по модели, которую я строю для роста отдельных животных с течением времени.Цель кода, с которым я работаю, состоит в том, чтобы: i) генерировать случайные начальные размеры животных из заданного распределения ii) дать каждому из этих индивидуумов начальную скорость роста из заданного распределения iii) вычислить новый размер особи через 1 год iv) Назначьте новый темп роста сверху распределения v) Рассчитайте новый размер человека через год.

Пока у меня есть приведенный ниже код, и я хочу повторить последние две строки кода x количество раз, без необходимости повторного физического выполнения кода.

# Generate starting lengths
lengths <- seq(from=4.4, to=5.4, by =0.1)

# Generate starting ks (growth rate)
ks <- seq(from=0.0358, to=0.0437, by =0.0001)

#Create individuals
create.inds <- function(id = NaN, length0=NaN, k1=NaN){
  inds <- data.frame(id=id, length0 = length0, k1=k1)
  inds
}

# Generate individuals
inds <- create.inds(id=1:n.initial,
        length=sample(lengths,100,replace=TRUE),    
         k1=sample(ks, 100, replace=TRUE))

# Calculate new lengths based on last and 2nd last columns and insert into next column
inds[,ncol(inds)+1] <- 326*(1-exp(-(inds[,ncol(inds)])))+
     (inds[,ncol(inds)-1]*exp(-(inds[,ncol(inds)])))

# Calculate new ks and insert into last column
inds[,ncol(inds)+1] <- sample(ks, 100, replace=TRUE)

Буду признателен за любую помощь, даже если вы считаете, что есть лучший способ написать это, пожалуйста, дайте мне знать.

1 Ответ

0 голосов
/ 30 января 2019

я думаю, что вы спрашиваете, это простой цикл:

for (i in 1:100) { #replace 100 with the desired times you want this to excecute
 inds[,ncol(inds)+1] <- 326*(1-exp(-(inds[,ncol(inds)])))+
     (inds[,ncol(inds)-1]*exp(-(inds[,ncol(inds)])))

# Calculate new ks and insert into last column
inds[,ncol(inds)+1] <- sample(ks, 100, replace=TRUE) 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...