You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言mutate_at结合all_of()解决tidyselect弃用警告求助

问题解决:tidyselect外部向量选择弃用警告

你的代码中使用vars(snpcol_start:snpcol_end)选择列范围时触发警告,原因是snpcol_start和snpcol_end属于外部变量(存储列名/位置的对象),在tidyselect 1.1.0及以上版本中,直接用外部变量做列选择的写法已被弃用,需要改用all_of()来明确标识外部向量。同时,mutate_at属于tidyverse旧语法,推荐用更灵活的mutate(across(...))替代。

修改后的代码

snpdata <- snpdata %>%
  mutate(across(all_of(snpcol_start):all_of(snpcol_end),
                ~ ifelse(. == 0, "AA", ifelse(. == 1, "AB", .))))

关键说明

  • all_of():用来告诉tidyselect,括号内的是外部定义的变量,不是直接的列名,符合新的选择规范,消除警告。
  • mutate(across(...)):替代旧的mutate_at,是tidyverse当前推荐的批量列操作语法,功能更全面。
  • 匿名函数简化:不需要用list(~ ...),直接写~ ...即可实现批量处理逻辑。

内容的提问来源于stack exchange,提问作者Ahmed Ayub Khan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 07:03:21