[R] Variable names AS variable names?

David Winsemius dwinsemius at comcast.net
Fri Feb 25 20:49:16 CET 2011


On Feb 25, 2011, at 1:09 PM, David Winsemius wrote:

>
> On Feb 25, 2011, at 12:33 PM, Noah Silverman wrote:
>
>> My actual code is several things with adaptive filtering.  This will
>> require accessing data sporadically.  The loop was just a quick  
>> example
>> for the e-mail.
>>
>> One application is to work with online (streaming) data.  If I get  
>> a new
>> data point in for code "a1", I'll need to be able to reference the
>> matrix named "a1".
>
> So, how do these things you are calling "codes" get their names?
>
> ("code" is not an R datatype. a1 is a matrix,  "a1" is a character  
> value and it would be returned by names(a1).  )

That's not correct. names(a1) would not return "a1" but names(codes) 
[1] would if defined as a list as below.

>
> a1 <- matrix(rnorm(100), nrow=10)
> b24 <- matrix(rnorm(100), nrow=10)
> q99 <- matrix(rnorm(100), nrow=10)
>
> codes <- list(a1=a1, b24=b24, q99=q99)
>
> str(codes[['a1']])
> ... should be a matrix
>
> Assignment also works with "[[" or with "[".
>
> We really _do_ need  examples that represent the problems posed on  
> the list. You have been posting a sufficient number of times to have  
> understood this by now.
>
> -- David
>
>
>>
>> On 2/25/11 12:23 AM, David Winsemius wrote:
>>>
>>> On Feb 25, 2011, at 1:55 AM, Noah Silverman wrote:
>>>
>>>> How can I dynamically use a variable as the name for another  
>>>> variable?
>>>>
>>>> I realize this sounds cryptic, so an example is best:
>>>>
>>>> #Start with an array of "codes"
>>>>
>>>
>>> Is there some reason not to use list(a1, b24, q99)? If not then:
>>>
>>> lapply(codes, somefun)
>>>
>>>
>>>>
>>>> #Each code has a corresponding matrix (could be vector)
>>>> a1 <- matrix(rnorm(100), nrow=10)
>>>> b24 <- matrix(rnorm(100), nrow=10)
>>>> q99 <- matrix(rnorm(100), nrow=10)
>>>>
>>>> #Now, I want to loop through all the codes and do something with  
>>>> each
>>>> matrix
>>>> for(code in codes){
>>>>  #here is where I'm stuck.  I don't want the value of code, but the
>>>> variable who's name is the value of code
>>>>
>>>> }
>>>>
>>>>
>>>> Any suggestions?
>>>>
>>>> -N
>>>>
>
> David Winsemius, MD
> West Hartford, CT
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.

David Winsemius, MD
West Hartford, CT



More information about the R-help mailing list