【发布时间】:2019-11-15 10:13:22
【问题描述】:
我正在编写一个通用查找函数来针对小标题执行。当我运行下面的代码时,我得到“错误:找不到对象'x'”
我的真实函数返回不同的错误消息,但我认为对此提供一些指导会有所帮助。
请看下面的代码
library(dplyr)
library(tibble)
fruits <- tibble(
x = 1:5,
y = c("apple", "peach", "pear", "strawberry", "orange")
)
gLookup <- function(datasource, indexColumn, targetValue, lookupColumn){
datasource %>%
filter(indexColumn == targetValue) %>%
select(lookupColumn) %>%
unlist() %>%
unname
}
gLookup(fruits, x, 3, y)
我希望返回“pear”,但我得到的是: 错误:找不到对象“x”
【问题讨论】:
-
找不到更合适的副本。除非事情发生了变化,否则
dplyr使用NSE,因此您需要!!和enquo、sym等。 -
或新的
{{,如filter({{indexColumn}} == {{targetValue}}) %>%。lookupColumn也应该这样做。
标签: r dplyr tidyverse rlang tidyeval