Try this: with(d.f, {merge(data.frame(house = rep(unique(house), each = length(unique(pet))), pet = unique(pet)), d.f, by = c("house", "pet"), all = TRUE) } )
On Thu, Dec 18, 2008 at 8:58 AM, Simon Pickett <simon.pick...@bto.org>wrote: > Hi all, > > Suppose I had the below example where a survey was carried out recording > the number of each type of pet in each house > > count<-c(2,1,2,1,2,3,4) > house<-c("house1","house1","house2","house3","house4","house4","house4") > pet<-c("dogs","cats","dogs","dogs","budgie","cat","hamster") > d.f<-data.frame(house,pet,count) > > How would I acheive a dataframe that had every instance of house in column > 1, all possible pets in column 2 and counts in column 3 like this... > > newhouse<-rep(unique(house),1,each=4) > newpets<-rep(unique(pet),4) > newcount<-c(2,1,0,0,2,0,0,0,1,0,0,0,0,3,2,4) > newdf<-data.frame(newhouse,newpets,newcount) > > Is there a way of doing this without creating a new matrix and using > programming loops? > > Thanks in advance, Simon. > > > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help@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 [[alternative HTML version deleted]]
______________________________________________ R-help@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.