[R] Doing a Task Without Using a For Loop
Tom La Bone
booboo at gforcecable.com
Tue Oct 14 17:22:40 CEST 2008
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
> <booboo at gforcecable.com>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 at 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 at 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.
More information about the R-help
mailing list