簡體   English   中英

Function 使用 mutate 和 case_when 創建二分法 var (0/1)

[英]Function to create dichotomic var (0/1) using mutate and case_when

我正在嘗試創建一個 function ,它將類別 1 / 2 的變量重新編碼為 0 / 1。像這樣:

var_dic <- function(data, x){
  mutate(x_rec, case_when(
              x == 1 ~ 1,
              x == 2 ~ 0,
              TRUE ~ NA_real_))
}

var1 <- c('1', '2', '1', '1', '2', NA, '2', NA)
var2 <- c('1', '1', '2', '2', '2', NA, '2', NA)
id <- c(1,2,3,4,5,6, 7, 8)
testing.df <- data.frame(id, var1, var2)

但我收到與“x_rec”相關的錯誤。 我希望這部分代碼建立新變量的名稱。 我猜我應該在某處包含 paste0,但不確定代碼中的方式或位置。

我們也可以使用data

var_dic <- function(data, x){
   data %>%
      mutate(!! {{x}} := case_when(
          {{x}} == 1 ~ 1,
          {{x}} == 2 ~ 0,
          TRUE ~ NA_real_))
    }

暫無
暫無

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

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