Message-ID: <43556189.8010305@pdf.com>
Date: 2005-10-18T20:56:41Z
From: Sundar Dorai-Raj
Subject: Repeating lines in a data frame
In-Reply-To: <BA6FF017E924044A9BF748AFAEEA6F304C8627@FWC-TLEX3.fwc.state.fl.us>
Guenther, Cameron wrote:
> Hello,
> I have a much larger dataset that is similar in form to:
> year species length count
> 1998 1 150 1
> 1998 2 200 1
> 1998 3 250 2
> 1999 1 150 3
> 1999 2 200 4
> 1999 3 250 5
> 2000 1 150 1
> 2000 2 200 1
> 2000 3 250 1
> 2001 1 150 2
> 2001 2 200 3
> 2001 3 250 1
> 2002 1 150 1
> 2002 2 200 2
> 2002 3 250 3
>
> What I want is to have a line of data for each year x species x length
> group combination
> I would like the ouput to be:
>
> Year species length count
> 1998 1 150 1
> 1998 2 200 1
> 1998 3 250 1
> 1998 3 250 1
> 1999 1 150 1
> 1999 1 150 1
> 1999 1 150 1
> 1999 2 200 1
> .
> .
> .
>
> Can anyone help me with a for statement of a function that can
> accomplish this?
How about:
r <- rep(row.names(x), x$count)
y <- x[r, ]
y$count <- rep(1, nrow(y))
where `x' is your data.frame. This will also create new row.names what
show where the duplicates are.
HTH,
--sundar