-
Notifications
You must be signed in to change notification settings - Fork 1k
Open
Labels
joinsUse label:"non-equi joins" for rolling, overlapping, and non-equi joinsUse label:"non-equi joins" for rolling, overlapping, and non-equi joins
Description
It is known that using a numeric vector in i will be treated as subsetting by index. However, if the supplied numeric vector has some classes (e.g. Date), then it might make more sense not to subset by index but join (just like a character vector).
Consider the following example:
library(data.table)
test <- data.table(
date = seq.Date(as.Date("2020-01-01"), as.Date("2020-07-01"), by = "day"),
key = "date"
)
test[, x := rnorm(.N)]
test[as.Date("2020-01-02")]The following error is produced:
> test[as.Date("2020-01-02")]
Error in `[.data.table`(test, as.Date("2020-01-02")) :
i has evaluated to type double. Expecting logical, integer or double.
Backtrace:
1: stop("i has evaluated to type ", typeof(i), ". Expecting logical, integer or double.")
2: `[.data.table`(test, as.Date("2020-01-02"))
3: test[as.Date("2020-01-02")]
User might expect it to behave like
> test[.(as.Date("2020-01-02"))]
Key: <date>
date x
<Date> <num>
1: 2020-01-02 -0.2380267
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
joinsUse label:"non-equi joins" for rolling, overlapping, and non-equi joinsUse label:"non-equi joins" for rolling, overlapping, and non-equi joins