当一个或多个列名称包含空格时,可以使用data.table中的“ on”参数完成非等价联接吗?
我知道应该避免语法上无效的名称,并且可以对其进行更正(例如,How to deal with spaces in column names?),但除此之外,在data.table library(data.table)
dt1 <- data.table(x = c("a", "b", "c"), y = c(2, 1, 3))
dt2 <- data.table(z = c("r", "g", "b"),
"y min" = seq(0.9, 2.9, 1),
"y max" = seq(1.1, 3.1, 1))
#join dt1 and dt2 where y is in the range ('y min', 'y max')
dt1[dt2, on = .(y >= `y min`, y <= `y max`), z := i.z]
参数中,反引号包装似乎不起作用。
例如,要对以下两个表执行非等价联接:
##Error in `[.data.table`(dt1, dt2, on = .(y >= `y min`, y <= `y max`), :
## Column(s) [`y min`,`y max`] not found in i
失败
dt1[dt2, on = .(y >= ymin, y <= ymax), z := i.z]
##> dt1
## x y z
##1: a 2 g
##2: b 1 r
##3: c 3 b
所需的输出(由具有语法有效名称的同一连接制成)
MONGO_INITDB_ROOT_USERNAME