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

______________________________________________
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