我有一个以这种方式定义的数据框:
dfB <- data.frame("_ID0" = c("z1", "z2", "z3"), check.names = FALSE)
我想添加一个列,如下所示:
dfB %>% mutate(fk_table = "dfB")
如何动态计算?
而不是硬编码"dfB"
?
我在这里找到了一个示例,它使用mutate
动态计算列名,但不使用传递的变量的名称。
答案 0 :(得分:4)
我们可以在函数
中使用substitute
f1 <- function(dat) {
name <- deparse(substitute(dat))
#or
#name <- as.character(match.call()[-1])
dat %>%
mutate(fk_table = name)
}
f1(dfB)
# _ID0 fk_table
#1 z1 dfB
#2 z2 dfB
#3 z3 dfB