or perhaps...

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


> unique(data1)
    ID Year NinYear
1  209 1971       2
3  213 1951       2
5  213 1953      20
20 213 1954      11
31 213 1955       2
33 234 1953      20
38 234 1958       2
40 234 1965       3
43 249 1952       2


Avram



On Oct 14, 2008, at 9:04 AM, Henrique Dallazuanna wrote:

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.

______________________________________________
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