我正在尝试调整fuzzyjoin库的内部连接特性。
守则:
JoinedRecs <- DataToUse1 %>%
stringdist_inner_join(DataToUse2, by = c(Full.Name1 = "Full.Name2"), max_dist = 2)当我对"by = "子句中的变量进行硬编码时,似乎起作用了。
但是,我想使用变量,其中:
Column1 <- "Full.Name1"
Column2 <- "Full.Name2"我尝试过一些可能的语法变体,但我总是收到相同的错误消息:
错误:必须按.data中的变量分组。
找不到
col。如果有人能告诉我使用变量而不是硬编码名称的"by = "子句的正确代码,我会非常感激的。
谢谢!
发布于 2021-11-12 16:13:55
我们可以使用setNames在by中创建一个命名向量
library(fuzzyjoin)
JoinedRecs <- DataToUse1 %>%
stringdist_inner_join(DataToUse2,
by = setNames(Column2, Column1), max_dist = 2)-reproducible实例
> iris2 <- data.frame(Species2 = 'setosa', value = 1)
> Column1 <- 'Species'
> Column2 <- 'Species2'
> stringdist_inner_join(head(iris), iris2,
by = setNames(Column2, Column1), max_dist = 2)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species Species2 value
1 5.1 3.5 1.4 0.2 setosa setosa 1
2 4.9 3.0 1.4 0.2 setosa setosa 1
3 4.7 3.2 1.3 0.2 setosa setosa 1
4 4.6 3.1 1.5 0.2 setosa setosa 1
5 5.0 3.6 1.4 0.2 setosa setosa 1
6 5.4 3.9 1.7 0.4 setosa setosa 1https://stackoverflow.com/questions/69945799
复制相似问题