[英]Pass a string as variable name in dplyr::mutate
我一直在閱讀這篇關於如何處理 dplyr 中變量的字符串引用的 SO 文章。
我想根據字符串輸入改變現有列:
var <- 'vs'
my_mtcars <- mtcars %>%
mutate(get(var) = factor(get(var)))
錯誤:意外的 '=' 在:“my_mtcars <- mtcars %>% mutate(get(var) ="
還試過:
my_mtcars <- mtcars %>%
mutate(!! rlang::sym(var) = factor(!! rlang::symget(var)))
這導致了完全相同的錯誤消息。
如何基於在 var 變量中傳遞字符串 'vs' 來執行以下操作?
# works
my_mtcars <- mtcars %>%
mutate(vs = factor(vs))
該操作可以與進行:=
在評估( !!
),並使用轉換到sym
BOL和上分配的RHS評價
library(dplyr)
my_mtcars <- mtcars %>%
mutate(!! var := factor(!! rlang::sym(var)))
class(my_mtcars$vs)
#[1] "factor"
或者不用考慮太多,使用mutate_at
,它可以在vars
獲取字符串並應用感興趣的function
my_mtcars2 <- mtcars %>%
mutate_at(vars(var), factor)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.