<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'><font size="2">Hi Arun and sorry for my insistence. If I</font><font size="2">'m right, wraping the entire expression we can identify that there is one missign data in $visit for  id=2:</font><BR><font size="2"></font> <BR><font size="2">> DT[, print(list(start, visit=as.Date(c(paste0(year(start[1]):(year(end[1])-1),"-12-31"))),end)), by=id]</font><BR><div><div id="ecxbloop_customfont" style="color: rgba(0, 0, 0, 1); font-family: Helvetica,Arial; font-size: 13px;"><div id="ecxbloop_customfont"><br><strong><font size="2">[[1]]  # Data for subject id=2</font></strong></div><div><font size="2">[1] "2007-01-01" "2007-01-01" "2007-01-01"</font></div><div id="ecxbloop_customfont"><br><font size="2">$visit</font></div><div id="ecxbloop_customfont"><font size="2">[1] "2007-12-31" "2008-12-31” ##########  <~~~ here’s the issue that results in warning.</font></div><div id="ecxbloop_customfont"><font size="2"></font> </div><div><font size="2">[[3]]</font></div><div id="ecxbloop_customfont"><font size="2">[1] "2009-05-01" "2009-05-01" "2009-05-01"</font></div><div><br><font size="2">But precisely, the output I desired for id=2 consists on keeping rows of only those "complete" observations for columns<font face="Courier New,sans-serif"> start</font>, <font face="Courier New,sans-serif">visit</font> and <font face="Courier New,sans-serif">end</font>,.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. T</font><font size="2">hat is:</font></div><div><font size="2"></font> </div><div><font size="2">   id             start              visit             end<br>1:  2 2007-01-01  2007-12-31 2009-05-01<br>2:  2 2007-01-01  2008-12-31 2009-05-01</font><br></div></div><div id="ecxbloop_customfont">Trying to follow your suggestions, I've written:</div><div> </div><div>> DT[unique(DT), <br>    {N = as.Date(c(paste0(year(start[1]):(year(end[1])-1),"-12-31")))<br>    .(start, visit = visit[N], end)<br>    }, by=id]</div><span><div id="ecxbloop_customfont"> </div><div>But it returns me an error message. Can you help me to find a way out of this mess?</div><div id="ecxbloop_customfont" style="color: rgba(0, 0, 0, 1); font-family: Helvetica,Arial; font-size: 13px;"> </div><div class="ecxhmmessage"><div><div dir="ltr"><div><blockquote><div> </div>
</blockquote>
</div>
</div>


</div></div></span></div>                                         </div></body>
</html>