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

R语言中mutate+across结合recode报错,case_when可行的原因

报错原因解析:mutate/across/recode中的意外'='错误

你遇到的unexpected '='错误,核心原因是recode函数中数字类型的旧值不能直接作为键使用。

在recode的语法逻辑里,你写的1 = "No"会被R误解:它会把1当成参数名称,但R不允许纯数字作为参数名,因此触发语法错误。而case_when是基于逻辑判断的分支语句,==是比较运算符,不存在参数名的识别问题,所以能正常运行。

修正后的代码只需把数字旧值用反引号包裹,让R正确识别为键名即可:

df %>%
  mutate(across(var1:var3, ~ recode(.x, `1` = "No", `2` = "Yes")))

补充说明:如果旧值是字符类型,直接写"1" = "No"就不会报错,因为字符串可以直接作为recode的键名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 15:00:53