修改 R 包源码 您所在的位置:网站首页 怎么更改安装包 修改 R 包源码

修改 R 包源码

2024-07-11 08:38| 来源: 网络整理| 查看: 265

修改 R 包源码 吴诗涛 2022-10-07 [R]

最近活跃在张敬信老师的 QQ 群答疑,遇到一个需要修改 R 包源码的问题,记录在此。

问题重现 library(rstatix) rstatix::cor_test(iris, Sepal.Length, Petal.Length) #> # A tibble: 1 × 8 #> var1 var2 cor statistic p conf.low conf.high method #> #> 1 Sepal.Length Petal.Length 0.87 21.6 1.04e-47 0.827 0.906 Pearson

输出结果中 cor 只保留两位小数,而有时候我们需要更多位数。通过查看 rstatix 包函数源码发现:作者在源码中直接设置了保留 2 位,且没有办法通过传参修改位数。

为此需要通过修改 as_tidy_cor() 函数的源码。

修改源码

最快捷的方法是利用 trace() 直接编辑源代码后保存:

library(rstatix) trace(rstatix:::as_tidy_cor, edit = T) # 修改后保存 #> Tracing function "as_tidy_cor" in package "rstatix (not-exported)" #> [1] "as_tidy_cor"

再次调用该函数,可以看到效果:

rstatix::cor_test(iris, Sepal.Length, Petal.Length) # 输出结果变成 4 位(这里因控制台输出会变成 3 位,实际是 4 位) #> # A tibble: 1 × 8 #> var1 var2 cor statistic p conf.low conf.high method #> #> 1 Sepal.Length Petal.Length 0.87 21.6 1.04e-47 0.827 0.906 Pearson

注意:这种方法是临时性的,仅当次使用有效。如果要永久修改,我的想法是复制整个 rstatix 包源码,修改源码后在本地调用。

收获

包开发者应该留一个保留位数的参数供使用者修改,直接保留两位很难满足需求。

经群友提醒,F2 键在 RStudio 中可以直接查看函数源代码。不过有些函数又依赖其他函数,有必要的话还是需要跑一趟 GitHub 找到问题到底在哪个函数里。

© Shitao Wu 2019 - 2024 编辑 版权 返回顶部



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有