The data.table package (which is amazingly useful) still prints the data.table output in the following scenario. Is this a known issue? It seems to occur when is.na is used.
di <- data.table(iris)
di[is.na(Sepal.Length),Color := "Blue"]
packageVersion("data.table")
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1: 5.1 3.5 1.4 0.2 setosa
2: 4.9 3.0 1.4 0.2 setosa
3: 4.7 3.2 1.3 0.2 setosa
4: 4.6 3.1 1.5 0.2 setosa
5: 5.0 3.6 1.4 0.2 setosa
---
146: 6.7 3.0 5.2 2.3 virginica
147: 6.3 2.5 5.0 1.9 virginica
148: 6.5 3.0 5.2 2.0 virginica
149: 6.2 3.4 5.4 2.3 virginica
150: 5.9 3.0 5.1 1.8 virginica
> packageVersion("data.table")
[1] ‘1.9.4’
6/14/2015 Edit: Thanks for the responses. Indeed it seems that the issue is that no records meet the criteria, whereas my is.na example is just an example of the general issue. To confirm, this line also causes the data.table to display:
di[Sepal.Length > 100,Color := "Blue"]
By the way, even if the column already exists the data.table still gets displayed if no records are found. As so:
d2 <- data.table(iris)
d2[,Clr := NA]
d2[Sepal.Length > 100, Clr := "Blue"]
Sounds like the authorities are already aware of this and have it tackled. I can work around the issue in the meantime.