【发布时间】:2022-01-06 21:24:27
【问题描述】:
我想编写一个连接两个 tibble 的函数,第二个 tibble 的连接列在函数的 args 中指定。
我有
df1 <- tibble(NUMBER = c(1,4))
df2 <- tibble(ORDER = 1:5,
DISORDER = 5:1,
WORD = c("The", "quick", "brown", "fox", "jumped"))
我想要
chozer(df1, df2, ORDER)
# to yield
tibble(NUMBER = c(1,4),
DISORDER = c(5,2),
WORD = c("The", "fox"))
# and
chozer(df1, df2, DISORDER)
# to yield
tibble(NUMBER = c(5,2),
DISORDER = c(1,4),
WORD = c("jumped", "quick"))
我已经尝试了几种变体
chozer <- function(df1, df2, ColName){
aCol = enquo(ColName)
inner_join(df1, df2, by = c(NUMBER = aCol))
}
# but they all gave errors.
我查看了 Hadley Wickham 的 Advanced R,但没有发现在连接的 by 子句中使用 NSE(非标准评估)的示例。
你知道吗?
【问题讨论】:
标签: r tidyverse inner-join nse