best365足球-365betvip-mobile365体育投注

简约 · 精致 · 专注内容

修改 R 包源码 - Shitao Wu

修改 R 包源码 - Shitao Wu

问题重现

修改源码

收获

最近活跃在张敬信老师的 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 找到问题到底在哪个函数里。

← 未取得保研名额

成为 tidy-R 群管理员啦! →

相关推荐

被蜜蜂蛰了有什么好处

被蜜蜂蛰了有什么好处

best365足球 06-29
剑与远征亨德里克坚毅铁卫值得培养吗介绍|剑与远征攻略
如何配置万能遥控器? ➡️
荷兰猪认主所需时间,精心养护可在一个月内认主
锶简介 锶有放射性吗 锶元素分布→MAIGOO百科
发微博在哪里发

发微博在哪里发

365betvip 08-18