Функция для создания дихотоми c var (0/1) с использованием mutate и case_when - PullRequest
0 голосов
/ 26 мая 2020

Я пытаюсь создать функцию, которая перекодирует переменные с категориями 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_re c '. Я хочу, чтобы эта часть кода установила sh имя новой переменной. Думаю, мне нужно где-то включить paste0, но не знаю, как и где в коде.

1 Ответ

0 голосов
/ 26 мая 2020

Мы также можем использовать data

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