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

使用purrr的map2/walk2时,函数参数非前两位的处理方法咨询

关于purrr::walk2参数适配的最优实现方式

你的匿名函数写法完全合理,甚至是这类场景下的标准最优实现之一。

当walk2默认传递的.x/.y与目标函数的参数顺序、位置不匹配时,用匿名函数显式映射参数是最直观、可读性最高的方案,你的代码已经做到了简洁和清晰的平衡。

补充几种等价写法供参考:

  • 用命名参数的匿名函数(更适合复杂场景或团队协作,可读性更强):
walk2(TCR_donor_cell, names(TCR_donor_cell),
      function(data, filename) {
        write_tsv(data, file = paste0("results/TCR/", filename, "_paired_chains.txt"))
      })
  • 若尝试避免匿名函数,可用purrr::partial包装,但会增加复杂度,不推荐:
write_tsv_with_prefix <- purrr::partial(write_tsv, file = ~ paste0("results/TCR/", .x, "_paired_chains.txt"))
walk2(names(TCR_donor_cell), TCR_donor_cell, ~ write_tsv_with_prefix(.y, .x))

总结

你的原代码已经是最优选择,无需调整。如果追求更直白的参数命名,可以换成命名参数的匿名函数版本,两种写法都符合R tidyverse的最佳实践。

内容的提问来源于stack exchange,提问作者Lucy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 06:35:27