title: How can I automate creation of a list of vectors containing simulated data from a known distribution, using a "for loop" in R?
body: <p>First stack exchange post so please bear with me. I'm trying to automate the creation of a list, and the list will be made up of many empty vectors of various, known lengths. The empty vectors will then be filled with simulated data. How can I automate creation of this list using a for loop in R?</p>
  <p>In this simplified example, fish have been caught by casting a net 4 times, and their abundance is given in the vector &quot;abundance&quot; (from counting the number of total fish in each net). We don't have individual fish weights, just the mean weight of all fish each net, so I need to simulate their weights from a lognormal distribution. So, I'm then looking to fill those empty vectors for each net, each with a length equal to the number of fish caught in that net, with weight data simulated from a lognormal distribution with a known mean and standard deviation.</p>
  <p>A simplified example of my code:</p>
  <pre><code>abundance &lt;- c(5, 10, 9, 20)
  net1 &lt;- rep(NA, abundance[1])
  net2 &lt;- rep(NA, abundance[2])
  net3 &lt;- rep(NA, abundance[3])
  net4 &lt;- rep(NA, abundance[4])
  
  simulated_weights &lt;- list(net1, net2, net3, net4)
  
  #meanlog vector for each net
  weight_per_net
  
  #meansd vector for each net
  sd_per_net
  
  for (i in 1:4) {
    simulated_weights[[i]] &lt;- rlnorm(n = abundance[i], meanlog = weight_per_net[i], sd = sd_per_net[i])
    print(simulated_weights_VM)
  }
  </code></pre>
  <p>Could anyone please help me automate this so that I don't have to write out each net vector (e.g. net1) by hand, and then also write out all the net names in the list() function? There are far more nets than 4 so it would be extremely time consuming and inefficient to do it this way. I've tried several things from other posts like paste0(), other for loops, as.list(c()), all to no avail.</p>
  <p>Thanks!
  HM</p>