[R] creating a dynamic output vector

jim holtman jholtman at gmail.com
Thu Nov 8 02:10:12 CET 2007


Here is a function that might do what you want:

> # function to create the output
> f.output <- function(dat){
+     # create the base output vector
+     output.base <- rep(NA,10)
+     names(output.base) <- paste("var", 1:10, sep='')
+     output.base[names(dat)] <- dat
+     output.base
+ }
>
> f.output(c(var1=10, var5=5, var2=2))
 var1  var2  var3  var4  var5  var6  var7  var8  var9 var10
   10     2    NA    NA     5    NA    NA    NA    NA    NA
> f.output(c(var6=6, var10=10, var1=1))
 var1  var2  var3  var4  var5  var6  var7  var8  var9 var10
    1    NA    NA    NA    NA     6    NA    NA    NA    10
> f.output(c(var4=4, var4=5))  # same variable with two values -- last one taken
 var1  var2  var3  var4  var5  var6  var7  var8  var9 var10
   NA    NA    NA     5    NA    NA    NA    NA    NA    NA
>


On 11/7/07, Steve Powers <smpowers at wisc.edu> wrote:
> 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.
>


-- 
Jim Holtman
Cincinnati, OH
+1 513 646 9390

What is the problem you are trying to solve?



More information about the R-help mailing list