Hi Arun and sorry for my insistence. If I'm right, wraping the entire 
expression we can identify that there is one missign data in $visit for  id=2:
 
> DT[, print(list(start, 
> visit=as.Date(c(paste0(year(start[1]):(year(end[1])-1),"-12-31"))),end)), 
> by=id]

[[1]]  # Data for subject id=2[1] "2007-01-01" "2007-01-01" "2007-01-01"
$visit[1] "2007-12-31" "2008-12-31” ##########  <~~~ here’s the issue that 
results in warning. [[3]][1] "2009-05-01" "2009-05-01" "2009-05-01"
But precisely, the output I desired for id=2 consists on keeping rows of only 
those "complete" observations for columns start, visit and end,.I only want to 
keep by rows the first and second columns, because the following 31 December 
would be  2009-12-31, which is older than the corresponding end=2009-05-01. 
That is:    id             start              visit             end
1:  2 2007-01-01  2007-12-31 2009-05-01
2:  2 2007-01-01  2008-12-31 2009-05-01
Trying to follow your suggestions, I've written: > DT[unique(DT), 
    {N = as.Date(c(paste0(year(start[1]):(year(end[1])-1),"-12-31")))
    .(start, visit = visit[N], end)
    }, by=id] But it returns me an error message. Can you help me to find a way 
out of this mess?  





                                          
_______________________________________________
datatable-help mailing list
[email protected]
https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/datatable-help

Reply via email to