首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有变量的r FuzzyJoin by子句

带有变量的r FuzzyJoin by子句
EN

Stack Overflow用户
提问于 2021-11-12 16:05:27
回答 1查看 123关注 0票数 0

我正在尝试调整fuzzyjoin库的内部连接特性。

守则:

代码语言:javascript
复制
JoinedRecs <- DataToUse1 %>%
    stringdist_inner_join(DataToUse2, by = c(Full.Name1 = "Full.Name2"), max_dist = 2)

当我对"by = "子句中的变量进行硬编码时,似乎起作用了。

但是,我想使用变量,其中:

代码语言:javascript
复制
Column1 <- "Full.Name1"
Column2 <- "Full.Name2"

我尝试过一些可能的语法变体,但我总是收到相同的错误消息:

错误:必须按.data中的变量分组。

找不到

  • col

如果有人能告诉我使用变量而不是硬编码名称的"by = "子句的正确代码,我会非常感激的。

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2021-11-12 16:13:55

我们可以使用setNamesby中创建一个命名向量

代码语言:javascript
复制
library(fuzzyjoin)
JoinedRecs <- DataToUse1 %>%
     stringdist_inner_join(DataToUse2, 
      by = setNames(Column2, Column1), max_dist = 2)

-reproducible实例

代码语言:javascript
复制
> 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     1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69945799

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档