Есть гораздо менее сложный способ сделать это. Во-первых, вы, вероятно, действительно не хотите j=0
, так как это делает стандартное отклонение равным нулю, а все значения постоянны, но я буду придерживаться установленных вами параметров:
ivals <- seq(5, 60, 5)
jvals <- seq(0, 1, 0.125)
n <- 10 # Just 10 values for testing
ijval <- expand.grid(ival=ivals, jval=jvals) # 108 combinations of i and j
draw <- function(i, j, n) {rlnorm(n, log(i^2 / sqrt((i*j)^2 + i^2)), sqrt(log(1 + ((i*j)^2 / i^2))))}
DF <- t(mapply(draw, i=ijval$ival, j=ijval$jval, n=n)) # 108 rows by n columns
Обратите внимание, что вы можете DF2 <- cbind(ijval, DF)
, если вы хотите, чтобы столбцы указывали значения i и j для каждой строки.