[R] Binding objects with a similar name

jim holtman jholtman at gmail.com
Mon Oct 12 22:44:48 CEST 2009


Instead of creating a lot of variables, work with a list.  Since you
did not supply any test data, I will make a guess at the code would be
like:

result <- lapply(split(newdataset, newdataset$target_species), function(.spec){
    tappy(.spec$total_hook_num, .spec$year, sum)
})

You can summarize from this list to the species easily by something like this:

sapply(result, sum)

but I would have to see the data to be sure.

On Mon, Oct 12, 2009 at 4:26 PM, jimdare <jamesdare26 at gmail.com> wrote:
>
> Dear R users,
>
> The code below splits a dataset by "target_species" and then further splits
> each target species group by year.  Finally the sum of a variable called
> "total_hook_num" is calculated and then assigned a name based on
> (paste(a$target_species[1],a$year[1],sep="").
>
> newsplit<-split(newdataset,list(newdataset$target_species))
> for(i in newsplit){
>
> by.year<-split(i,list(i$year))
> for(a in by.year){
> assign(paste(a$target_species[1],a$year[1],sep=""),sum(a$total_hook_num))
> }
> }
>
> The end result is a single value for the number of hooks in a particular
> year for a particular species (e.g. YFN2005<-2320) for every species/year.
> This results in number of individual objects being created, as you can see
> from ls().  I need to bind objects that have the same "target_speices" name,
> in order of year e.g. ALBtimeseries<-cbind(ALB1989, ALB2990,.....,ALB2009).
>
> My questions are: is there a way to do this by working cbind into the loop;
> and if not, is there a way to bind objects that have a common name e.g. all
> ALB****?
>
> Thank you very much for your time, it's much appreciated.
> James
>
>> ls()
>  [1] "a"          "ALB1989"    "ALB1990"    "ALB1991"    "ALB1992"
>  [6] "ALB1993"    "ALB1994"    "ALB1995"    "ALB1996"    "ALB1997"
>  [11] "ALB1998"    "ALB1999"    "ALB2000"    "ALB2001"    "ALB2002"
>  [16] "ALB2003"    "ALB2004"    "ALB2005"    "ALB2006"    "ALB2007"
>  [21] "ALB2008"    "ALB2009"    "BIG1990"    "BIG1991"    "BIG1992"
>  [26] "BIG1993"    "BIG1994"    "BIG1995"    "BIG1996"    "BIG1997"
>  [31] "BIG1998"    "BIG1999"    "BIG2000"    "BIG2001"    "BIG2002"
>  [36] "BIG2003"    "BIG2004"    "BIG2005"    "BIG2006"    "BIG2007"
>  [41] "BIG2008"    "BIG2009"    "BTU1992"    "BTU2001"    "BTU2004"
>  [46] "BWS2000"    "by.year"    "data1"      "data2"      "datacomb"
>  [51] "i"          "logic"      "logic2"     "MAK1992"    "MOO1992"
>  [56] "MOO2000"    "MOO2002"    "newdataset" "newsplit"   "NTU1994"
>  [61] "NTU1995"    "NTU1996"    "NTU1997"    "NTU1998"    "NTU1999"
>  [66] "NTU2000"    "NTU2001"    "NTU2002"    "NTU2003"    "NTU2004"
>  [71] "NTU2005"    "NTU2007"    "NTU2008"    "NTU2009"    "SKJ1990"
>  [76] "SKJ1996"    "SKJ1998"    "SKJ2003"    "STM1992"    "STM1995"
>  [81] "STM1996"    "STM1999"    "STM2000"    "STM2007"    "STM2008"
>  [86] "STN1990"    "STN1991"    "STN1992"    "STN1993"    "STN1994"
>  [91] "STN1995"    "STN1996"    "STN1997"    "STN1998"    "STN1999"
>  [96] "STN2000"    "STN2001"    "STN2002"    "STN2003"    "STN2004"
> [101] "STN2005"    "STN2006"    "STN2007"    "STN2008"    "STN2009"
> [106] "STU1994"    "STU1996"    "STU2000"    "STU2002"    "STU2004"
> [111] "swordfish"  "TOR2001"    "TOR2002"    "TOR2003"    "TOR2004"
> [116] "TOR2005"    "TOR2006"    "TOR2007"    "TOR2008"    "TOR2009"
> [121] "TUN1997"    "TUN1998"    "TUN1999"    "TUN2001"    "YFN1990"
> [126] "YFN1991"    "YFN1992"    "YFN1993"    "YFN1994"    "YFN1995"
> [131] "YFN1996"    "YFN1997"    "YFN1998"    "YFN1999"    "YFN2000"
> [136] "YFN2001"    "YFN2002"    "YFN2003"    "YFN2004"    "YFN2005"
> [141] "YFN2006"    "YFN2007"    "YFN2008"
>
>
>
>
> --
> View this message in context: http://www.nabble.com/Binding-objects-with-a-similar-name-tp25862663p25862663.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> 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 that you are trying to solve?




More information about the R-help mailing list