[R] creating a dynamic output vector

Steve Powers smpowers at wisc.edu
Thu Nov 8 00:42:09 CET 2007


Not exactly. That doesn't work for me. Because I don't actually know 
what variables are created each time I run the program, I don't have an 
easy way to call all the ones I need at once (which your suggestion 
appears to require). But I do have a list of names for all the variables 
I want. We need to match based on variable names I think.

Note that elements of NAMES correspond to exact variables, but with 
quotes around them.

If I just knew how to tell R to call NAMES[1], NAMES[2], NAMES[3] etc., 
but without quotes (so that the variable itself is called, rather than 
the header string), that might work. But when NAMES[1]="varA," the code
/
noquote(NAMES[1])/

literally returns /varA/, rather than the desired value/string that 
comes out when I manually type the code varA. Weird.---steve




Peter Alspach wrote:
> Steve
>
> Is this the sort of thing you mean?
>
> output <- character(26)
> names(output) <- paste('var', LETTERS[1:26], sep='')
> output
> output[paste('var', LETTERS[c(2,4,6,7,16)], sep='')] <- c(1, pi,
> letters[1:3])
> output 
>
> Peter Alspach
>
>   
>> -----Original Message-----
>> From: r-help-bounces at r-project.org 
>> [mailto:r-help-bounces at r-project.org] On Behalf Of Steve Powers
>> Sent: Thursday, 8 November 2007 11:27 a.m.
>> To: r-help at r-project.org
>> Subject: [R] creating a dynamic output vector
>>
>> Let's say I have a program that returns variables whose names 
>> may be any string within the vector 
>> NAMES=c("varA","varB","varC","varD","varE","varF"..."varZ"), 
>> but I do not ever know which ones have actually been created. 
>> So in one example output, "varA", "varC", and "varD" could 
>> exist, but in another example output "varA", "varD", 
>> "varE",and "varF" exist, with no pattern or predictability 
>> (different combinations can come out, as well as different 
>> numbers of variables).
>>
>> How do assign the output values, in pre-arranged order, into 
>> an output vector? The output vector for the first example 
>> would be OUTPUTS=c(varA, NA, varC, varD...) and the output 
>> vector for the second example would be OUTPUTS=c(varA, NA, 
>> NA, varD, varE, varF...).  In other words, the rows for all 
>> potential returned values need to be retained in the order 
>> set by NAMES, and the values all need to be plugged into 
>> their respective spot in that order if they exist. Otherwise 
>> NA is plugged in.
>>
>> One other factor is that some outputs are values, but others 
>> are text. Tips?
>>
>>
>> Using R version 2.4 on Windows XP
>>
>> ______________________________________________
>> 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.
>>
>>     
>
>



More information about the R-help mailing list