[R] Odp: creating a factor from dates by subject?
Petr PIKAL
petr.pikal at precheza.cz
Fri Dec 21 09:45:51 CET 2007
r-help-bounces at r-project.org napsal dne 20.12.2007 16:33:05:
> Dear R-help,
>
> I have a data set consisting of measurements made on multiple
> subjects. Measurement sessions are repeated for each subject on
> multiple dates. Not all subjects have the same number of
> sessions. To create a factor that represents the session, I do
> the following:
>
> data <- read.csv('test-data.csv') # data appended below
> data$date <- as.Date(data$date, format='%m/%d/%Y')
> data$session <- rep(NA,nrow(data))
> for (i in unique(data$ID)) {
> data$session[data$ID==i] <- as.numeric(factor(data$date[data$ID==i]))
> }
> data$session <- factor(data$session)
If you do not heve identical dates in one ID then
unlist(lapply(rle(test$V1)$lengths, seq))
shall give you session vector.
Regards
Petr
>
> This results in a session column in the data frame that runs from
> 1 to the number of sessions for each subject ID.
>
> What do you R gurus think of this? Is there a better more R-ish
> way to do this with without creating the session variable in the
> data frame and then looping? I find myself doing this sort of
> thing all the time and it feels crufty to me.
>
> Thanks, Mike
>
> --
> Michael A. Miller mmiller3 at iupui.edu
> Imaging Sciences, Department of Radiology, IU School of Medicine
>
>
> "ID","date","session"
> 1,05/24/2006,1
> 1,02/01/2007,2
> 1,05/23/2007,3
> 1,07/06/2007,4
> 2,07/28/2006,1
> 2,09/24/2006,2
> 2,01/18/2007,3
> 3,07/24/2006,1
> 3,01/17/2007,2
> 3,03/22/2007,3
> 4,05/08/2006,1
> 4,07/24/2006,2
> 4,09/26/2006,3
> 4,03/16/2007,4
> 5,07/19/2006,1
> 5,01/11/2007,2
> 5,05/04/2007,3
> 6,06/27/2006,1
> 6,08/15/2006,2
> 6,10/31/2006,3
> 6,02/27/2007,4
> 7,08/01/2006,1
> 7,10/06/2006,2
> 7,03/16/2007,3
> 8,06/06/2006,1
> 8,11/16/2006,2
> 8,04/24/2007,3
> 9,03/13/2007,1
> 9,04/27/2007,2
> 9,05/13/2007,3
> 10,08/03/2006,1
> 10,01/03/2007,2
> 10,04/25/2007,3
> 10,06/12/2007,4
> 11,05/24/2005,1
> 11,08/31/2006,2
> 11,04/10/2007,3
> 12,01/25/2007,1
> 12,04/30/2007,2
> 12,06/11/2007,3
> 1,05/24/2006,1
> 1,02/01/2007,2
> 1,05/23/2007,3
> 1,07/06/2007,4
> 2,07/28/2006,1
> 2,09/24/2006,2
> 2,01/18/2007,3
> 3,07/24/2006,1
> 3,01/17/2007,2
> 3,03/22/2007,3
> 4,05/08/2006,1
> 4,07/24/2006,2
> 4,09/26/2006,3
> 4,03/16/2007,4
> 5,07/19/2006,1
> 5,01/11/2007,2
> 5,05/04/2007,3
> 6,06/27/2006,1
> 6,08/15/2006,2
> 6,10/31/2006,3
> 6,02/27/2007,4
> 7,08/01/2006,1
> 7,10/06/2006,2
> 7,03/16/2007,3
> 8,06/06/2006,1
> 8,11/16/2006,2
> 8,04/24/2007,3
> 9,03/13/2007,1
> 9,04/27/2007,2
> 9,05/13/2007,3
> 10,08/03/2006,1
> 10,01/03/2007,2
> 10,04/25/2007,3
> 10,06/12/2007,4
> 11,05/24/2005,1
> 11,08/31/2006,2
> 11,04/10/2007,3
> 12,01/25/2007,1
> 12,04/30/2007,2
> 12,06/11/2007,3
> 1,05/24/2006,1
> 1,02/01/2007,2
> 1,05/23/2007,3
> 1,07/06/2007,4
> 2,07/28/2006,1
> 2,09/24/2006,2
> 2,01/18/2007,3
> 3,07/24/2006,1
> 3,01/17/2007,2
> 3,03/22/2007,3
> 4,05/08/2006,1
> 4,07/24/2006,2
> 4,09/26/2006,3
> 4,03/16/2007,4
> 5,07/19/2006,1
> 5,01/11/2007,2
> 5,05/04/2007,3
> 6,06/27/2006,1
> 6,08/15/2006,2
> 6,10/31/2006,3
> 6,02/27/2007,4
> 7,08/01/2006,1
> 7,10/06/2006,2
> 7,03/16/2007,3
> 8,06/06/2006,1
> 8,11/16/2006,2
> 8,04/24/2007,3
> 9,03/13/2007,1
> 9,04/27/2007,2
> 9,05/13/2007,3
> 10,08/03/2006,1
> 10,01/03/2007,2
> 10,04/25/2007,3
> 10,06/12/2007,4
> 11,05/24/2005,1
> 11,08/31/2006,2
> 11,04/10/2007,3
> 12,01/25/2007,1
> 12,04/30/2007,2
> 12,06/11/2007,3
> 1,05/24/2006,1
> 1,02/01/2007,2
> 1,05/23/2007,3
> 1,07/06/2007,4
> 2,07/28/2006,1
> 2,09/24/2006,2
> 2,01/18/2007,3
> 3,07/24/2006,1
> 3,01/17/2007,2
> 3,03/22/2007,3
> 4,05/08/2006,1
> 4,07/24/2006,2
> 4,09/26/2006,3
> 4,03/16/2007,4
> 5,07/19/2006,1
> 5,01/11/2007,2
> 5,05/04/2007,3
> 6,06/27/2006,1
> 6,08/15/2006,2
> 6,10/31/2006,3
> 6,02/27/2007,4
> 7,08/01/2006,1
> 7,10/06/2006,2
> 7,03/16/2007,3
> 8,06/06/2006,1
> 8,11/16/2006,2
> 8,04/24/2007,3
> 9,03/13/2007,1
> 9,04/27/2007,2
> 9,05/13/2007,3
> 10,08/03/2006,1
> 10,01/03/2007,2
> 10,04/25/2007,3
> 10,06/12/2007,4
> 11,05/24/2005,1
> 11,08/31/2006,2
> 11,04/10/2007,3
> 12,01/25/2007,1
> 12,04/30/2007,2
> 12,06/11/2007,3
>
> ______________________________________________
> 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.
More information about the R-help
mailing list