Skip to content
Back to formatted view

Raw Message

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