我正在编写R脚本,我需要允许用户指定将要手工处理的变量的名称,即
var <- 'user_name'
通常,我通常使用rlang::sym
和引用/取消引用机制来引用它。但是,我需要使用tidyr::replace_na
,我的想法在这里都没有用,因为必须在list
中指定变量的名称。
在这种情况下,如何引用我的var
?我在考虑以下问题:
data <- data %>% replace_na(list(sym(var) = 0))
但这没用...
答案 0 :(得分:3)
我们还可以将replace_na
放在mutate
内并取消引用:
library(dplyr)
library(tidyr)
var <- 'user_name'
data %>%
mutate(!!var := replace_na(!!sym(var), 0))
结果:
user_name
1 0
2 1
3 2
4 3
5 4
6 5
数据:
data <- data.frame(user_name = c(NA, 1:5))
答案 1 :(得分:2)
除了使用for (int q = 0; q < i; q++) {
umount(mountlist[sort[q]]);
}
以外的任何外部软件包,我们都可以使用dplyr/tidyr
setNames
library(dplyr)
library(tidyr)
data %>%
replace_na(as.list(setNames(0, var)))
# user_name
#1 0
#2 3
#3 4