在这种情况下,我正在对函数中的数据框进行过滤,但是该数据框具有与要过滤的变量名称相似的列。
示例:
d = tibble(cond = c(1,2), b = c(1,2))
f_ = function(data, cond) {
data = data %>% filter(b == cond)
return(data)
}
f_(d, cond = 2)
# A tibble: 2 x 2
cond b
<dbl> <dbl>
1 1 1
2 2 2
没有过滤发生(因为cond等于b)。
当我不控制数据中的列数,但至少知道它具有b列时,这成为一个问题。
答案 0 :(得分:1)
我们可以更改功能来评估“ cond”,而不是来自环境
eval()