[R] Use of apply rather than a loop
Dennis Fisher
fisher at plessthan.com
Fri Dec 4 23:47:15 CET 2009
Colleagues,
R 2.9.0 on all platforms
I have a dataset that contains three columns of interest: ID's, serial
elapsed times, and a marker. Representative data:
Subject Time Marker
1 100.5 0
1 101 0
1 102 1
1 103 0
1 105 0
For each subject, I would like to find the time associated with MARKER
== 1, then replace Time with Time - (Time[Marker == 1])
The result for this subject would be:
Subject Time Marker
1 -1.5 0
1 -1 0
1 0 1
1 1 0
1 3 0
One proviso: some subjects do not have Marker == 1; for these
subjects, I would like Time to remain unchanged.
At present, I am looping over each subject. The number of subjects is
large so this process is quite slow. I assume that one of the apply
functions could speed this markedly but I am not facile with them.
Any help would be appreciated.
Dennis
Dennis Fisher MD
P < (The "P Less Than" Company)
Phone: 1-866-PLessThan (1-866-753-7784)
Fax: 1-866-PLessThan (1-866-753-7784)
www.PLessThan.com
More information about the R-help
mailing list