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.