簡體   English   中英

#R 如何根據從向量中獲取的列名來改變 case_when

[英]#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.

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