簡體   English   中英

是否可以使用字符串引用列名?

[英]Is it possible to reference a column name with a string?

我以前查過這個問題,但我找不到針對我的具體問題的解決方案。

本質上,通過編寫類似這樣的內容來轉換數據集非常容易 -

data %>% transform(x1 = ifelse(x1 == 1, x1 + 50, x1))

但是當我嘗試用字符串“x1”替換 x1 時遇到問題

data %>% transform("x1" = ifelse("x1" == 1, "x1" + 50, "x1"))

我嘗試過使用“get”,例如 get(“x1”),但會引發錯誤。

有沒有辦法做到這一點?

使用dplyr ,使用mutate

library(dplyr)
data %>% 
     mutate(x1 = ifelse(x1 == 1, x1 + 50, x1))

如果我們傳遞一個字符串,要么使用mutate_at

data %>%
   mutate_at(vars('x1'), ~ ifelse( . == 1, . + 50, .))

或轉換為sym並評估 ( !! )

data %>%
    mutate(!! "x1" := ifelse(!! rlang::sym("x1") == 1, 
          !! rlang::sym("x1") + 50, !!rlang::sym("x1")))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM