相关疑难解决方法(0)

Dplyr通过=(a = b)加入,其中a和b是包含字符串的变量?

我正在尝试使用dplyr执行内部连接两个表,我想我会被非标准的评估规则绊倒.当使用by =("a"="b")参数时,当"a"和"b"是实际字符串时,一切都按预期工作.这是一个有效的玩具示例:

library(dplyr)
data(iris)

inner_join(iris, iris, by=c("Sepal.Length" = "Sepal.Width"))
Run Code Online (Sandbox Code Playgroud)

但是,让我说我将inner_join放在一个函数中:

library(dplyr)
data(iris)

myfn <- function(xname, yname) {
    data(iris)
    inner_join(iris, iris, by=c(xname = yname))
}

myfn("Sepal.Length", "Sepal.Width")
Run Code Online (Sandbox Code Playgroud)

这将返回以下错误:

Error: cannot join on columns 'xname' x 'Sepal.Width': index out of bounds

我怀疑有一些花哨的表达,贬低,引用或不引用我可以做的工作,但我对这些细节有点模糊.

r dplyr

28
推荐指数
1
解决办法
1万
查看次数

标签 统计

dplyr ×1

r ×1