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

R语言绘制logistic回归图时mutate生成prob列报错如何解决

错误原因
  • 核心报错来自mutate()中ifelse()的语法错误:原代码中ifelse(outcome == "pos", 0",","1")存在引号错位问题,0后的引号、包裹逗号的引号都是无效写法,导致R解析出了多余的第4个参数,触发unused argument报错。
  • 额外逻辑问题:你的y轴是「糖尿病阳性概率」,如果要对应outcome为pos的样本,ifelse的返回值写反了:outcome等于pos时应该返回1,否则返回0,否则拟合出的概率曲线是反向的。
修正后可运行代码

假设你的原始数据集名为df,修正后代码如下:

df %>%
  mutate(prob = ifelse(outcome == "pos", 1, 0)) %>%
  ggplot(aes(plasma_glucose, prob)) +
  geom_point(alpha = 0.3) + # 若点无重叠可保留原来的alpha=1
  geom_smooth(method = "glm", method.args = list(family = "binomial")) +
  labs(
    title = "Logistic Regression Model", 
    x = "Plasma Glucose Concentration",
    y = "Probability of being diabete-pos"
  )
简化写法

你也可以不用提前生成0/1变量,直接在ggplot映射中处理,代码更简洁:

df %>%
  ggplot(aes(plasma_glucose, as.numeric(outcome == "pos"))) +
  geom_point(alpha = 0.3) +
  geom_smooth(method = "glm", method.args = list(family = "binomial")) +
  labs(
    title = "Logistic Regression Model", 
    x = "Plasma Glucose Concentration",
    y = "Probability of being diabete-pos"
  )

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 05:06:02