[R] rep for multiple categories
Henrique Dallazuanna
wwwhsd at gmail.com
Mon Mar 28 21:59:44 CEST 2011
Try this:
as.data.frame.table(xtabs(Number ~ SPP + Point + Visit, template))
On Mon, Mar 28, 2011 at 3:43 PM, BORGMANN,Kathi <kborgmann at audubon.org> wrote:
> Hi,
> I am R beginner and am trying to figure out how to generate a complete list of species for every point, visit, and year. The code below is close but does not give me a list of species for every point, visit, and year in my data set.
>
> spplist<-unique(sumPtCt$Species)
> spplength<-length(spplist)
> Pointlist<-unique(sumPtCt$Point)
> Pointlength<-length(Pointlist)
> Visitlist<-unique(sumPtCt$Visit)
> Visitlength<-length(Visitlist)
> Yearlist<-unique(sumPtCt$Year)
> Yearlength<-length(Yearlist)
> s<-rep(spplist, each=Pointlength, Visitlength, Yearlength)
> p<-rep(Pointlist, spplength)
> v<-rep(Visitlist, spplength)
> y<-rep(Yearlist, spplength)
> template<-data.frame(Species=s,Point=p, Visit=v, Year=y)
>
> ###merge template and data and replace NAs with 0
> FinalPtCt<-merge(template, sumPtCt, all=T)
> FinalPtCt$Number[is.na(FinalPtCt$Number)]<-0
>
>
> Essentially I have data that look like this
> SPP Point Visit Number
> BUFF 1 1 5
> WEGR 1 1 10
> CLGR 1 1 15
> WEGU 2 1 5
> RUDU 2 1 15
> HOGR 2 1 5
>
>
> But I want to generate this
> Spp Point Visit Number
> BUFF 1 1 5
> WEGR 1 1 10
> CLGR 1 1 15
> WEGU 1 1 0
> RUDU 1 1 0
> HOGR 1 1 0
> WEGU 2 1 5
> RUDU 2 1 15
> HOGR 2 1 5
> BUFF 2 1 0
> WEGR 2 1 0
> CLGR 2 1 0
>
> ______________________________________________
> 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.
>
--
Henrique Dallazuanna
Curitiba-Paraná-Brasil
25° 25' 40" S 49° 16' 22" O
More information about the R-help
mailing list