![](/img/trans.png)
[英]Creating a new column based on values obtained from different column, using mutate() and case_when function in R
[英]#R how to mutate case_when based on column name taken from vector
我正在努力從數字列創建因子變量,但我想使用列出的值作為所需列的參數。 我已經能夠 select 基於向量輸入的列,但仍然無法在 mutate case_when
var1 = "transfer"
var2 = "transfer_tier"
tier <- trx %>%
select_(.dots = var1) %>%
mutate_(var2 = case_when(
var1 <= 1e3 ~ '1. <1k',
var1 <= 1e4 ~ '1. <10k',))
使用上面的代碼沒有顯示錯誤,但我想要的公式不起作用。 var2 是使用所有 NA 創建的。 如何正確調用 var1?
我無法重現您的問題,因為我沒有您的數據,所以這里有一個最小的可重現示例,展示如何使用as.name()
和/或“curly curly”語法從“外部”向量中引入名稱您的 tidyverse 工作流程:
library(tidyverse)
#install.packages("palmerpenguins")
library(palmerpenguins)
var1 <- "body_mass_g"
var2 <- "island"
penguins %>%
select(external_var1 = as.name(var1),
external_var2 = {{var2}}) %>%
mutate(categorised_var1 = case_when(
external_var1 <= 3500 ~ "skinny",
external_var1 >= 5500 ~ "heavy",
TRUE ~ "regular"
)) %>%
ggplot(aes(y = categorised_var1, fill = external_var2)) +
geom_bar()
由reprex package (v2.0.1) 於 2021 年 12 月 1 日創建
在這種情況下 as.name() 和 curly curly 語法是可以互換的,但對於您的真實數據可能並非如此; 請參閱如何制作出色的 R 可重現示例,了解如何幫助我們幫助您的提示。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.