Как я могу заставить data.table понять, что значения - это переменные, определенные выше, а не имена столбцов?
Строка с первым комментарием может возвращать 0L, но возвращает все данные, содержащиеся в dt.
Воспроизводимый пример:
library(data.table)
dt <- structure(list(zip_from = c("1000", "1000", "1000", "1000", "1000",
"1000", "1000", "1000", "1000", "1000"), zip_to = c("1000", "1001",
"1002", "1003", "1004", "1005", "1006", "1007", "1008", "1009"
), time_1 = c(0, 332.8, 332.8, 362.5, 504.9, 256.6, 446.4, 694.4,
723.4, 462.3), dist_1 = c(0, 3208, 3208, 3465.3, 4275.5, 2267.6,
4158.1, 5811.4, 8842.6, 4624.7), dist_2 = c(0, 3208, 3208, 3465.3,
4275.5, 2267.6, 4158.1, 5811.4, 8842.6, 4624.7), time_2 = c(0,
332.8, 332.8, 362.5, 504.9, 256.6, 446.4, 694.4, 723.4, 462.3
)), .Names = c("zip_from", "zip_to", "time_1", "dist_1", "dist_2",
"time_2"), sorted = c("zip_from", "zip_to"), class = c("data.table",
"data.frame"), row.names = c(NA, -10L))
zip_from <- "8153"
zip_to <- "9536"
dt[J(zip_from, zip_to), nomatch = 0L] # returns everything (Not OK)
a <- "8153"
b <- "9536"
dt[J(a, b), nomatch = 0L] # returns 0L (OK)
dt[J("8153", "9536"), nomatch = 0L] # returns 0L (OK)