【发布时间】:2021-07-04 03:20:09
【问题描述】:
数据框我正在尝试基于一些有效的代码创建一个函数,以便我可以进一步复制它。
nap_analyse <- nap_analyse %>%
mutate(is.beekper = as.logical(replace(About_yourself.Beekeeper, !is.na(About_yourself.Beekeeper), TRUE))) %>%
mutate(is.beekper = replace_na(is.beekper, FALSE))
上面的代码似乎运行良好,因此我正在尝试创建以下函数:
new_nap_var <- function(dataframe, new_var, var_to_replace) {
dataframe <- dataframe %>%
mutate(new_var = as.logical(replace(var_to_replace, !is.na(var_to_replace), TRUE))) %>%
mutate(new_var = replace_na(new_var, FALSE))
}
但是,当我运行 new_nap_var(nap_analyse, is.beekeeper, About_yourself.Beekeeper) 时,我得到了错误:
错误:
mutate()输入new_var有问题。 未找到 x 对象“About_yourself.Beekeeper” ℹ 输入new_var是as.logical(replace(var_to_replace, !is.na(var_to_replace), TRUE))。 运行rlang::last_error()看看哪里出错了。
我怎样才能做到这一点?非常感谢!
【问题讨论】:
-
在函数中的变量名周围使用
{{..}}。 (例如 -{{var_to_replace}}) -
谢谢 Ronak,但是,我得到了和上面一样的错误。
-
如果您创建一个小的可重现示例以及预期的输出,这将更容易提供帮助。阅读how to give a reproducible example。