<div dir="ltr">Hi all,<div><br></div><div>Here's the link to #4990: <a href="https://r-forge.r-project.org/tracker/index.php?func=detail&aid=4990&group_id=240&atid=975">https://r-forge.r-project.org/tracker/index.php?func=detail&aid=4990&group_id=240&atid=975</a></div>
<div><br></div><div>I'm not sure there should be any warning here. A warning message is created in `:=` if the RHS that's assigned is "bigger" in length than the LHS. </div><div><br></div><div>For ex:</div>
<div><br></div><div>dt <- data.table(a=rep(1:2, c(5,2)))</div><div>dt[, b := c(1,2,3), by=a]<br></div><div><br></div><div># creates warning that RHS is of length 3 and LHS is of length 2 for a ==2.</div><div><div>Warning message:</div>
<div>In `[.data.table`(dt, , `:=`(b, c(1, 2, 3)), by = a) :</div><div>  RHS 1 is length 3 (greater than the size (2) of group 2). The last 1 element(s) will be discarded.</div></div><div><br></div><div>Other than that, there need not be any warning because it's being recycled. For example, </div>
<div><br></div><div>x <- 1:5</div><div>x[c(TRUE, FALSE)]</div><div># [1] 1 3 5. </div><div><br></div><div>Here, the number of elements of x are odd, but the recycling produces no warning. It may not exactly be the same issue, but to give an idea of silent recycling.<br>
</div><div><br></div><div>What do you guys think?</div><div><br></div><div>Arun.</div></div>