Is this what you want?

data1$NinYear <- with(data1, ave(ID, Year, FUN = length))

On Tue, Oct 14, 2008 at 12:22 PM, Tom La Bone <[EMAIL PROTECTED]>wrote:

>
> The table function, which I was unaware of, works great. However, I still
> don't see how to assign the values calculated with table to data1$NinYear
> without using a loop.
>
> Tom
>
>
>
>
> Henrique Dallazuanna wrote:
> >
> > Try this:
> >
> > with(data1, table(ID, Year))
> >
> > On Tue, Oct 14, 2008 at 10:58 AM, Tom La Bone
> > <[EMAIL PROTECTED]>wrote:
> >
> >>
> >> Assume that I have the dataframe "data1", which is listed at the end of
> >> this
> >> message. I want count the number of lines that each person has for each
> >> year. For example, the person with ID=213 has 15 entries (NinYear) for
> >> 1953.
> >> The following bit of code calculates NinYear:
> >>
> >> for (i in 1:length(data1$ID)) {
> >>  data1$NinYear[i] <- length(data1[data1$Year==data1$Year[i] &
> >>    data1$ID==data1$ID[i],1]) }
> >>
> >> This seems to work but is horribly slow (some files I am working with
> >> have
> >> over 500,000 lines). Can anyone suggest a faster way of doing this,
> >> perhaps
> >> a way that does not use a for loop? Thanks.
> >>
> >> Tom
> >>
> >> ID      Year    NinYear
> >> 209     1971    0
> >> 209     1971    0
> >> 213     1951    0
> >> 213     1951    0
> >> 213     1953    0
> >> 213     1953    0
> >> 213     1953    0
> >> 213     1953    0
> >> 213     1953    0
> >> 213     1953    0
> >> 213     1953    0
> >> 213     1953    0
> >> 213     1953    0
> >> 213     1953    0
> >> 213     1953    0
> >> 213     1953    0
> >> 213     1953    0
> >> 213     1953    0
> >> 213     1953    0
> >> 213     1954    0
> >> 213     1954    0
> >> 213     1954    0
> >> 213     1954    0
> >> 213     1954    0
> >> 213     1954    0
> >> 213     1954    0
> >> 213     1954    0
> >> 213     1954    0
> >> 213     1954    0
> >> 213     1954    0
> >> 213     1955    0
> >> 213     1955    0
> >> 234     1953    0
> >> 234     1953    0
> >> 234     1953    0
> >> 234     1953    0
> >> 234     1953    0
> >> 234     1958    0
> >> 234     1958    0
> >> 234     1965    0
> >> 234     1965    0
> >> 234     1965    0
> >> 249     1952    0
> >> 249     1952    0
> >>
> >>
> >>
> >> --
> >> View this message in context:
> >>
> http://www.nabble.com/Doing-a-Task-Without-Using-a-For-Loop-tp19974078p19974078.html
> >> Sent from the R help mailing list archive at Nabble.com.
> >>
> >> ______________________________________________
> >> 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.
> >
> >
>
> --
> View this message in context:
> http://www.nabble.com/Doing-a-Task-Without-Using-a-For-Loop-tp19974078p19975745.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> 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