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.

Reply via email to