r - 使用 mutate 和 case_when 创建二分法 var (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”相关的错误。我希望这部分代码建立新变量的名称。我猜我应该在某处包含 paste0,但不确定代码中的方式或位置。
解决方案
我们也可以data
使用
var_dic <- function(data, x){
data %>%
mutate(!! {{x}} := case_when(
{{x}} == 1 ~ 1,
{{x}} == 2 ~ 0,
TRUE ~ NA_real_))
}
推荐阅读
- function - 寻找反函数
- xquery - Exist-db 用 XQUERY 添加节点
- javascript - 实例化一个地图对象给定一个实例HTML 元素
- visual-studio-code - 如何在 VsCodium 中只看到 GNU/libre 扩展?
- packer - Packer 没有看到我的环境变量?
- linux - Linux:bash:无法 ls 包含单引号的目录中的文件
- reactjs - 如何触发事件以通过反应事件传递项目列表
- .net - 使用.net,XmlReader“向前看”?
- python - PyAutoGui 和循环
- ios - Swift - 单元测试中不同 iOS 中不同的 pngData() 大小