<html dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" id="owaParaStyle"></style>
</head>
<body fpstyle="1" ocsi="0">
<div style="direction: ltr;font-family: Tahoma;color: #000000;font-size: 10pt;">
<div>
<div>
<div>This is probabily related to Bug</div>
<div><br>
</div>
<div><br>
</div>
<div>    [#2223] Deleting multiple columns out-of-order using := causes seg fault</div>
<div><br>
</div>
<div><br>
</div>
<div>However, using `:=` with  `with = F` does not appear to work as intended.</div>
<div><br>
</div>
<div>    DT <- data.table(c1 = 1:2)</div>
<div>    </div>
<div>    DT[, `:=`(c("c2", "c1"), list(c1 * 10, NULL)), with = FALSE]</div>
<div><br>
</div>
<div>    ## Warning: Adding new column 'c2' then assigning NULL (deleting it).</div>
<div><br>
</div>
<div>    ##    c1</div>
<div>    ## 1: 10</div>
<div>    ## 2: 20</div>
<div><br>
</div>
<div><br>
</div>
<div>The new column should be called `c2` and it be the only column in DT.</div>
<div><br>
</div>
<div><br>
</div>
<div><br>
</div>
<div>The following gives an appropriate warning (and result)</div>
<div><br>
</div>
<div>    DT <- data.table(c1 = 1:2)</div>
<div>    </div>
<div>    DT[, `:=`(c("c1", "c2"), list(c1 * 10, NULL)), with = FALSE]</div>
<div><br>
</div>
<div>    ## Warning: Adding new column 'c2' then assigning NULL (deleting it).</div>
<div><br>
</div>
<div>    ##    c1</div>
<div>    ## 1: 10</div>
<div>    ## 2: 20</div>
<div><br>
</div>
<div><br>
</div>
<div>Obviously this is a non-standard (and non-reccomended) approach. The following would be considered more *standard*</div>
<div><br>
</div>
<div><br>
</div>
<div>    DT <- data.table(c1 = 1:2)</div>
<div>    # save as a new data.table</div>
<div>    DT2 <- DT[, list(c2 = 10 * c1)]</div>
<div>    </div>
<div>    # use setnames</div>
<div>    DT <- data.table(c1 = 1:2)</div>
<div>    setnames(DT[, `:=`(c1, 10 * c1)], "c1", "c2")</div>
<div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 16px; ">
<br>
</div>
<div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 16px; ">
Regards,</div>
<div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 16px; ">
<br>
</div>
<div style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: 16px; ">
Michael</div>
</div>
</div>
</div>
</body>
</html>