Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

:= should still suppress print if i is logical and all FALSE #887

Closed
JBreidaks opened this issue Oct 14, 2014 · 2 comments
Closed

:= should still suppress print if i is logical and all FALSE #887

JBreidaks opened this issue Oct 14, 2014 · 2 comments
Assignees
Milestone

Comments

@JBreidaks
Copy link

In package data.table version 1.9.5 when I check if the variable is within the specified limits, but any value of variable don't exist and print out all data.table.

Example:
Package data.table version 1.9.5:

library(data.table)
d <- data.table(a=c("A2","A4","A2"))
d[, sert:=""]
d[a %in% c("BE", "BD"), sert:="11"]
a sert
1: A2
2: A4
3: A2

str(d)
Classes ‘data.table’ and 'data.frame': 3 obs. of 2 variables:
$ a : chr "A2" "A4" "A2"
$ sert: chr "" "" ""

  • attr(*, ".internal.selfref")=
  • attr(, "index")= atomic
    ..- attr(
    , "__a")= int 1 3 2
@jangorecki
Copy link
Member

looks like a bug.
I did notice the issue did not occurs on binary search (at least in 1.9.4):

setkey(d,a)
d[.(c("BE", "BD")), sert:="11"]

you might try to rewrite your code to binary search as it will also improve the performance

@mattdowle mattdowle added this to the v1.9.6 milestone Oct 14, 2014
@mattdowle mattdowle changed the title Print out data.table within the specified limits without any element := should still suppress print if i is logical and all FALSE Oct 14, 2014
@mattdowle
Copy link
Member

Thanks. Agreed it's a printing issue (data looks correct) ... will fix.
@jangorecki Re rewriting to use binary search ... new feature auto indexing means it's now ok to use == and %in% and those will now either use any existing physical key (an earlier setkey) or create a secondary key (set2key) automatically and then use it. For just one == (or %in%) in i, currently.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants