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

如何抑制R函数自动输出的绘图?以sensemakr包ovb_contour_plot为例

解决方案

方案1:使用函数内置参数(推荐)

sensemakr包的ovb_contour_plot自带控制绘图输出的逻辑参数,调用时添加plot = FALSE即可关闭自动绘图,仅返回所需的数据集:

require(sensemakr)
estimate <- 0.091321        
est_se <- 0.008321
dof <- 10000

sense_df <- sensemakr::ovb_contour_plot(estimate = estimate,
                                        se = est_se,
                                        dof = dof,
                                        plot = FALSE)

该方案无需额外设置,无空白残留,适配绝大多数使用场景。

方案2:旧版本包兼容方案

如果你使用的包版本未提供plot参数,可通过「空绘图设备+代码块参数」组合实现完全抑制:

  1. 代码块头部设置为{r, fig.keep = "none"},彻底丢弃该代码块的所有绘图输出,不会遗留空白区域
  2. 调用函数时临时开启空设备,运行后关闭设备:
require(sensemakr)
estimate <- 0.091321        
est_se <- 0.008321
dof <- 10000

pdf(file = NULL)
sense_df <- sensemakr::ovb_contour_plot(estimate = estimate,
                                        se = est_se,
                                        dof = dof)
dev.off()

方案3:直接调用底层计算逻辑

如果完全不想触发任何绘图相关调用,可以直接提取ovb_contour_plot内部的核心数据生成逻辑,自行生成所需的sense_df:

require(sensemakr)
estimate <- 0.091321        
est_se <- 0.008321
dof <- 10000

# 核心逻辑提取自ovb_contour_plot源码
r2dz_seq <- seq(0, 0.3, length.out = 100)
r2yz_seq <- seq(0, 0.3, length.out = 100)
sense_df <- expand.grid(r2dz.x = r2dz_seq, r2yz.dx = r2yz_seq)
sense_df$adjusted_estimate <- with(sense_df, adjusted_estimate(estimate, r2dz.x, r2yz.dx))
sense_df$adjusted_t <- with(sense_df, adjusted_t(estimate, est_se, r2dz.x, r2yz.dx, dof))
sense_df$adjusted_lower <- with(sense_df, adjusted_ci(estimate, est_se, dof, r2dz.x, r2yz.dx)[,1])
sense_df$adjusted_upper <- with(sense_df, adjusted_ci(estimate, est_se, dof, r2dz.x, r2yz.dx)[,2])

内容的提问来源于stack exchange,提问作者C.Robin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 21:45:05