[R] function returns R object with name based on input
David Winsemius
dwinsemius at comcast.net
Fri Apr 24 18:54:00 CEST 2009
On Apr 24, 2009, at 11:56 AM, Jennifer Brea wrote:
> I wanted to ask how I can make a for loop or a function return an R
> object with a unique name based on either some XX of the for loop or
> some input for the function.
>
> For example
>
> if I have a function:
>
> fn<-function(data,year){
>
> which does does some stuff
> }
>
> How do I return an object from the function called X.year, such that
> if I run fn(data,1989), the output is an object called X.1989?
Read:
?assign
?paste
#and FAQ 7.21
http://cran.r-project.org/doc/FAQ/R-FAQ.html#How-can-I-turn-a-string-into-a-variable_003f
>
> In a separate but related process, I'm also trying to subset data by
> year, where there are multiple observations by years, using the
> subset() function. For example:
>
> data.1946<-subset(data, year==1946)
> data.1947<-subset(data, year==1947)
> data.1948<-subset(data, year==1948)
> data.1949<-subset(data, year==1949)
> ...
list.of.subsets <- sapply(1946:200, function(x) subset(data,
year==x) ) # with no example ... untested
Using data as a dataframe names is poor R programming practice, since
many functions use data a a parameter name and it is also a function
name.
>
>
> How should I set this up? I was thinking of writing a for loop, but
> I have never written a for loop that creates objects based on the
> loop's index, for example a loop for(i in 1946:2000) that returns 55
> objects with the object names based on the index.
>
David Winsemius, MD
Heritage Laboratories
West Hartford, CT
More information about the R-help
mailing list