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

如何用gf_point绘制female与male差值的点图?遇Invalid formula type报错

解决gf_point绘制差值点图的报错问题

错误原因分析

  1. gf_point要求公式为双变量形式(y ~ x),你使用的单变量公式(仅~(female - male))不符合函数要求,触发Invalid formula type for gf_point报错。
  2. 第二次尝试的代码存在语法错误(缺少右括号),且变量名大小写不一致(MyData vs myData)——R对大小写敏感,这会导致程序找不到目标变量。

正确解决方案

方案1:提前计算差值变量,指定x轴绘制点图

先计算female - male的差值,再用行号(或数据中已有的分类变量)作为x轴,差值作为y轴:

# 计算差值(注意保持变量名大小写统一)
MyData$earn_diff <- MyData$female - MyData$male
# 用行号作为x轴,绘制差值点图
gf_point(earn_diff ~ seq_along(earn_diff), data = MyData)
# 若数据中有专属分类变量(如id),可替换为该变量:
# gf_point(earn_diff ~ id, data = MyData)

方案2:直接在公式中计算差值(无需提前生成变量)

用I()包裹差值计算,同时指定x轴(如行号):

gf_point(I(female - male) ~ seq_along(female), data = MyData)

方案3:绘制单变量点分布(改用gf_dotplot/gf_jitter)

如果不需要x轴,仅展示差值的分布点,可使用支持单变量的绘图函数:

# 用dotplot展示单变量点分布
gf_dotplot(~I(female - male), data = MyData)
# 或用jitter避免点重叠
gf_jitter(~I(female - male), data = MyData)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 23:07:12