[R] reference generated var name in loop

Evan Cooch ev@n@cooch @end|ng |rom gm@||@com
Fri May 26 16:49:18 CEST 2023


Greetings --

I'm trying to write some code that basically does the following:

1\ user inputs a list of parameter names, and parameter values.

2\ code parses this list, extracting parameter names and values separately

3\ loops over the number of parameters, and for each parameter, 
generates something (say, rnorm) based on the value corresponding to 
that parameter.

4\ assigns a new name to the vector of rnorm data, where the name is a 
permutation of the original parameter name. In the example (below) I 
simply past "_r" to the original parameter name (to indicate, say, its 
some rnorm values associated that that variable).

5\the 'I'm stumped' part -- output the newly named vector into something 
(say, data.frame), which requires being able to reference the newly 
named vector, which is what can't figure out how to accomplish.

Here is a MWE of sorts -- the starting list of parameter names and 
values is in a list I call parms.

  parms <- c(a=4,b=6,c=11) # list of parms user could pass to a function

  nvars <- names(parms)  # extract parameter names

  vals <- sub("\\=.*", "", parms) # extract parameter values

  n <- length(parms) # determine number of parameters

  ranvec <- data.frame() # to store stuff from loop

  for (i in 1:n) {
    pn <- nvars[i]; # get name of parm variable
    rn <- rnorm(5,as.numeric(vals[i]),0.25) # generate rnorm based on 
parm value
    assign(paste(pn, "_r", sep=""),rn) # creates a_r, b_r, c_r...
    ** here is where I want to output to ranvec, but I can't see how to 
do it since the loop doesn't know the name of the new var created in 
preceding step...**
  }


In the end, I want to create a data frame containing rnorm deviates for 
each of a set of user-specified variables, which I can reference in some 
fashion using a permuted version of the original variable name.

Suggestions?

Many thanks...



More information about the R-help mailing list