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
