【发布时间】:2021-01-20 12:29:11
【问题描述】:
这个问题发生在我没有单独使用 dplyr::mutate 函数,而是将它插入一个函数时,它不起作用!看:
library(tidyverse)
data1<-data.frame(a=c(1:2), x1=c(2:3))
fun <- function(df1, coldf1){
df1 %>% mutate(coldf1 = 1) %>% return()
}
fun(data1, "a")
data1 %>% mutate("a" = 1)
这两个代码是相同的,但结果却出乎意料:
> fun(data1, "a")
a x1 coldf1
1 1 2 1
2 2 3 1
> data1 %>% mutate("a" = 1)
a x1
1 1 2
我知道相等的赋值有问题,同样的问题也发生在 left_join 函数中。这些事情有通用的解决方案吗?
【问题讨论】:
-
你不能像使用 dplyr 那样做
coldf1,查看dplyr、rlang等中的非标准评估 (NSE)。
标签: r function dplyr variable-assignment