[R] Selecting First Incidence from Longitudinal Data

arun smartpink111 at yahoo.com
Sun Feb 24 05:44:20 CET 2013


Hi,
Try this:
#dat1
 do.call(rbind,lapply(split(dat1,dat1$ID),function(x) if(any(x$COMPL!=0)) head(x[x$COMPL!=0,],1) else head(x,1)))
#  ID COMPL SEX HEREDITY
#1  1     3   1        2
#2  2     1   0        1
#3  3     2   0        1
#4  4     0   1        2
A.K.





________________________________
From: Tasnuva Tabassum <t.tasnuva at gmail.com>
To: Xiaogang Su <xiaogangsu at gmail.com> 
Cc: arun <smartpink111 at yahoo.com>; R help <r-help at r-project.org>; Rui Barradas <ruipbarradas at sapo.pt> 
Sent: Saturday, February 23, 2013 11:23 PM
Subject: Re: [R] Selecting First Incidence from Longitudinal Data


Hi
Thank you very much, but I forgot to tell that I also want to include the patients for which no complication occurred. That is, for my data I want to include patient no. 4, for which the COMPL value will be 0.

In that case, what R function should I write? 




On Sat, Feb 23, 2013 at 12:23 PM, Xiaogang Su <xiaogangsu at gmail.com> wrote:

My bad. I didn't try it out with the real data. Here you go. HTH, X
>
>
>dat <- read.table(text="
>ID    COMPL  SEX  HEREDITY
>1    0      1      2
>1    0      1      2
>1    3      1      2
>2    0      0      1
>2    1      0      1
>2    2      0      1
>2    2      0      1
>3    0      0      1
>3    0      0      1
>3    0      0      1
>3    0      0      1
>3    2      0      1
>4    0      1      2
>4    0      1      2
>", header = TRUE)
>
>
>dat0 <- dat[dat$COMPL!=0, ]
>dat0$sequence <- as.vector(unlist(lapply(aggregate(dat0$ID, by=list(dat0$ID),FUN=length)$x, FUN=function(x){seq(1, x)})))
>dat0 <- dat0[dat0$sequence==1, ] 
>dat0
>
>
>
>
>On Sat, Feb 23, 2013 at 2:09 PM, arun <smartpink111 at yahoo.com> wrote:
>
>HI,
>>Tried your approach:
>>
>>
>> dat1$sequence <- as.vector(unlist(lapply( aggregate(dat1$ID, by=list(dat1$ID),FUN=length)$x, FUN=function(x){seq(1, x)})))
>> dat0 <- dat1[dat1$sequence==1 & dat1$COMPL!= 0, ] #your second solution
>> dat0
>>#[1] ID       COMPL    SEX      HEREDITY sequence
>>#<0 rows> (or 0-length row.names)
>> 
>>
>>dat1[dat1$sequence==1,] #here the OP wanted first incidence where COMPL!=0
>>#   ID COMPL SEX HEREDITY sequence
>>#1   1     0   1        2        1
>>#4   2     0   0        1        1
>>#8   3     0   0        1        1
>>#13  4     0   1        2        1
>>A.K.
>>
>>
>>
>>
>>----- Original Message -----
>>From: Xiaogang Su <xiaogangsu at gmail.com>
>>To: Rui Barradas <ruipbarradas at sapo.pt>
>>Cc: r-help at r-project.org
>>Sent: Saturday, February 23, 2013 2:15 PM
>>Subject: Re: [R] Selecting First Incidence from Longitudinal Data
>>
>>Try this:
>>dat$sequence <- as.vector(unlist(lapply( aggregate(dat$ID, by=list(x),
>>FUN=length)$x, FUN=function(x){seq(1, x))))
>>dat0 <- dat[dat$sequence==1, ]
>>
>>HTH, X
>>
>>
>>On Sat, Feb 23, 2013 at 1:07 PM, Rui Barradas <ruipbarradas at sapo.pt> wrote:
>>
>>> Hello,
>>>
>>> You can use ?aggregate and ?head to do what you want. Try the following.
>>>
>>>
>>>
>>> dat <- read.table(text="
>>>
>>> ID    COMPL  SEX  HEREDITY
>>> 1    0      1      2
>>> 1    0      1      2
>>> 1    3      1      2
>>> 2    0      0      1
>>> 2    1      0      1
>>> 2    2      0      1
>>> 2    2      0      1
>>> 3    0      0      1
>>> 3    0      0      1
>>> 3    0      0      1
>>> 3    0      0      1
>>> 3    2      0      1
>>> 4    0      1      2
>>> 4    0      1      2
>>> ", header = TRUE)
>>>
>>> aggregate(. ~ ID, data = subset(dat, COMPL != 0), head, 1)
>>>
>>>
>>> Hope this helps,
>>>
>>> Rui Barradas
>>>
>>> Em 23-02-2013 14:28, Tasnuva Tabassum escreveu:
>>>
>>>  I have a longitudinal competing risk data of the form:
>>>>
>>>> ID    COMPL  SEX   HEREDITY
>>>> 1     0       1      2
>>>> 1     0       1      2
>>>> 1     3       1      2
>>>> 2     0       0      1
>>>> 2     1       0      1
>>>> 2     2       0      1
>>>> 2     2       0      1
>>>> 3     0       0      1
>>>> 3     0       0      1
>>>> 3     0       0      1
>>>> 3     0       0      1
>>>> 3     2       0      1
>>>> 4     0       1      2
>>>> 4     0       1      2.
>>>>
>>>> Where, COMPL= health complication of diabetic patients which has value
>>>> labels   as  0= no complication,1=coronary heart disease, 2=retinopathy,
>>>> 3=
>>>> nephropathy.
>>>>
>>>>
>>>> I want to select only the first complication that occurred to each
>>>> patient.
>>>> What R function can I use?
>>>>
>>>>         [[alternative HTML version deleted]]
>>>>
>>>> ______________________________**________________
>>>> R-help at r-project.org mailing list
>>>> https://stat.ethz.ch/mailman/**listinfo/r-help<https://stat.ethz.ch/mailman/listinfo/r-help>
>>>> PLEASE do read the posting guide http://www.R-project.org/**
>>>> posting-guide.html <http://www.R-project.org/posting-guide.html>
>>
>>>> and provide commented, minimal, self-contained, reproducible code.
>>>>
>>>>
>>> ______________________________**________________
>>> R-help at r-project.org mailing list
>>> https://stat.ethz.ch/mailman/**listinfo/r-help<https://stat.ethz.ch/mailman/listinfo/r-help>
>>> PLEASE do read the posting guide http://www.R-project.org/**
>>> posting-guide.html <http://www.R-project.org/posting-guide.html>
>>
>>> and provide commented, minimal, self-contained, reproducible code.
>>>
>>
>>
>>
>>--
>>==============================
>>Xiaogang Su, Ph.D.
>>Associate Professor & Statistician
>>School of Nursing, University of Alabama
>>Birmingham, AL 35294-1210
>>(205) 934-2355 [Office]
>>xgsu at uab.edu
>>xiaogangsu at gmail.com
>>https://sites.google.com/site/xgsu00/
>>
>>
>>    [[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.
>>
>>
>
>
>
>-- 
>==============================
>Xiaogang Su, Ph.D.
>Associate Professor & Statistician 
>School of Nursing, University of Alabama 
>Birmingham, AL 35294-1210
>(205) 934-2355 [Office]
>xgsu at uab.edu
>xiaogangsu at gmail.com  
>https://sites.google.com/site/xgsu00/



More information about the R-help mailing list