使用mutate和case_when创建二分之一var(0/1)的函数

问题描述 投票:0回答:1

我正在尝试创建一个将类别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'相关的错误。我希望代码的那部分建立新var的名称。我想我应该在某个地方包含paste0,但不确定代码中的方式或位置。

r function mutate case-when
1个回答
0
投票

我们也可以使用data

var_dic <- function(data, x){
   data %>%
      mutate(!! {{x}} := case_when(
          {{x}} == 1 ~ 1,
          {{x}} == 2 ~ 0,
          TRUE ~ NA_real_))
    }
© www.soinside.com 2019 - 2024. All rights reserved.