On 10.06.2013 09:53, Arunkumar Srinivasan wrote: 

> However, one
inconsistency I find with the use of `!(x==.)` is this: 
> dt1 <-
data.table(x = 0:4, y=5:9) 
>> dt1[!(x)] 
> 
> x y 
> 1: 4 10 
> Not the
correct result! If `!(x==.)` is equal to `x != .`, then the correct
result should be the first row, isn't it?

That result makes perfect
sense to me. I don't think of !(x==.) being the same as x!=. ! is simply
a prefix. It's all the rows that aren't returned if the ! prefix wasn't
there. 

> dt2 <- data.table(x = c(0,3,4,NA), y = c(NA,4,5,NA)) 
> 
>>
dt2[!(x)] # ends up in an error 
> Error in seq_len(nrow(x))[-irows] :

> only 0's may be mixed with negative subscripts

That needs to be
fixed. But we're getting quite theoretical here and far away from common
use cases. Why would we ever have row numbers of the table, as a column
of the table itself and want to select the rows by number not mentioned
in that column? 
It ends up in an error because `NA` is not
removed/replaced.

Links:
------
[1]
http://stackoverflow.com/questions/16239153/dtx-and-dtx-treat-na-in-x-inconsistently#comment23317096_16240143
_______________________________________________
datatable-help mailing list
[email protected]
https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/datatable-help

Reply via email to