这是我的数据:
df <- tibble::tribble(
~A, ~B,
"C", "G",
"D", "H",
"E", "I",
"F", "J")
df$A <- as.factor(df$A)
var <- "A"
并且,我想将A从C转换为E使用,也许是rlang,这样的东西,但它不起作用!
var <- syms(var)
df <- df %>% mutate(!!!var = fct_relevel(!!!var, "E"))
我想要的输出是:
df <- df %>% mutate(A = fct_relevel(A, "E"))
levels(df$A)
但是我没有手动提供A,而是想以编程方式提供这些,使用var字符向量的rlang syms。
我该怎么做?
答案 0 :(得分:2)
我同意@ alistaire的评论但是对于它的价值,正确的rlang
语法将是:
df <- df %>% mutate(!!var := fct_relevel(!!rlang::sym(var), "E"))
levels(df$A);
#[1] "E" "C" "D" "F"
df <- tibble::tribble(
~A, ~B,
"C", "G",
"D", "H",
"E", "I",
"F", "J")
df$A <- as.factor(df$A)
var <- "A"