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

在R语言中基于多条件创建二元列的报错问题求助

解决R中dplyr创建二元新列的报错问题

你遇到的argument "yes" is missing, with no default错误,是因为代码末尾缺少两个闭合括号:一个用来结束ifelse()函数,另一个用来结束mutate()函数,导致R无法识别完整的参数结构。

修复后的硬编码均值代码

直接用你已计算好的均值,补全括号即可:

library(dplyr)
df = data.frame(
  var1 = c(0, 4, 8, 2, 4, 10, 2, 3, 2, 9),
  var2 = c(9, 10, 5, 4, 7, 8, 6, 9, 7, 2),
  var3 = c(3, 3, 5, 5, 4, 5, 5, 2, 2, 1)
)

df %>%
  dplyr::mutate(
    newvar = ifelse(
      var1 > 4.4 & (var2 > 6.7 | var3 > 3.5),
      "Yes",
      "No"
    )
  )

更灵活的动态计算均值方法

如果不想手动输入均值,可以让R自动计算变量均值,数据更新时无需修改代码:

library(dplyr)

df %>%
  mutate(
    newvar = ifelse(
      var1 > mean(var1) & (var2 > mean(var2) | var3 > mean(var3)),
      "Yes",
      "No"
    )
  )

运行后会生成符合要求的newvar列:当var1高于自身均值,且var2高于自身均值或var3高于自身均值时取值为"Yes",否则为"No"。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 22:57:19