最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

优秀学员笔记—如何查看函数源代码?

网站源码admin1浏览0评论

优秀学员笔记—如何查看函数源代码?

一、先按住ctrl,单击函数

但如果函数的源代码是如下这种

代码语言:javascript代码运行次数:0运行复制
function(height, ...)
  UseMethod("barplot")

说明这是一个s3泛型函数

二、s3泛型函数

泛型函数简单来说就是输入参数的类型不同则调用不同。

举例如果是数值型就调用barplot.default(x)

泛型函数的具体方法(如 barplot.default、barplot.factor 等)才是真正实现功能的代码。那如何查看这些具体方法的源代码呢?

三、查看s3泛型函数具体方法的源代码

代码语言:javascript代码运行次数:0运行复制
methods("barplot")
# barplotpareClusterResult*
# barplot.default
# barplot.enrichResult*
# barplot.formula*

这会列出所有与 barplot 相关的具体方法:

  • barplotpareClusterResult*:这是针对 compareClusterResult 类的 barplot 方法。
  • barplot.default:这是默认的 barplot 方法,适用于大多数基本数据类型(如数值向量)。
  • barplot.enrichResult*:这是针对 enrichResult 类的 barplot 方法。
  • barplot.formula*:这是针对公式(formula)类型的 barplot 方法。

其中,带有 * 的方法是非导出函数,来自某些扩展包(如compareClusterResult 和 enrichResult)

四、如何查看具体方法的源代码

代码语言:javascript代码运行次数:0运行复制
getS3method("barplot", "enrichResult")

至此我们终于知道了showCategory这个参数的默认值是8啦

五、其它查看函数具体方法的源代码的方法

秉承小洁老师说的掌握一种方法就够了的原则,以下内容仅供了解:

代码语言:javascript代码运行次数:0运行复制
enrichplot:::barplot.enrichResult(x, showCategory = 10)

::: 表示访问该包中的非导出函数或方法.

提问:两个冒号代码什么呢?

ctrl+单击barplot.enrichResult,即可看源码

六、微调小洁老师富集分析代码

因为我看大部分文章KEGG都用条形图输出30条,GO用点图每个输出10条。

代码语言:javascript代码运行次数:0运行复制
#GO
dotplot(ego, split = "ONTOLOGY",showCategory = 10) +
   facet_grid(ONTOLOGY ~ ., space = "free_y",scales = "free_y") 

#KEGG
barplot(ekk,showCategory = 30)  

注意:如果他padj<0.05的值的数量是3,而你设置了10,那也没用,只会画3个。(小洁老师语录)

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。原始发表:2025-04-20,如有侵权请联系 cloudcommunity@tencent 删除源码笔记泛型函数数据类型
发布评论

评论列表(0)

  1. 暂无评论