当列名包含空格时,使用“ on”进行Data.table连接

时间:2018-09-17 18:26:13

标签: r data.table

当一个或多个列名称包含空格时,可以使用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

0 个答案:

没有答案