在SQL中,您可以使用以下命令执行联接:
select x.var1, y.var2
from x left join y
on substring(x.var1, 1, 5) = y.var2;
在进行连接时,你能在dplyr(在R中)对变量进行类似的操作,还是只用完全匹配来完成连接?
一条评论建议创建中间变量,但我想知道是否有解决方法。
(在声明中编辑以使其更清晰)
答案 0 :(得分:0)
如果没有可重现的示例,很难准确,但在dplyr中,通过在连接之前将子字符串操作包含在管道变异中,您可以使用此代码获得与SQL查询类似的效果。像这样:(当然使用的虚拟数据是无稽之谈)
x <- data.frame(n = c("00000000000", "111111111"), var1 = 1:2)
y <- data.frame(name= as.character(c("00000", "11111")), var2=3:4)
df <- x %>%
mutate(name = substr(n, 1,5)) %>%
left_join(y, by="name") %>%
select(var1,var2)