r - 显示 R 包中函数的源代码

标签 r s4

这个问题在这里已经有了答案:




8年前关闭。




Possible Duplicate:
R: show source code of an S4 function in a package



我下载了一个包 ( GEOquery ) 并使用了一些函数。其中之一称为 Table ,据我所知,它能够将 S4 数据集制成表格。

例如。
> summary(GDS2853) # GDS2853 is a dataset I downloaded from NCBI 
Length  Class   Mode 
     1    GDS     S4 
getAnywhere(Table) 显示
> getAnywhere(Table)
A single object matching ‘Table’ was found
It was found in the following places
  package:GEOquery
  namespace:GEOquery
with value

function (object) 
standardGeneric("Table")
<environment: 0x06ad5268>
attr(,"generic")
[1] "Table"
attr(,"generic")attr(,"package")
[1] "GEOquery"
attr(,"package")
[1] "GEOquery"
attr(,"group")
list()
attr(,"valueClass")
character(0)
attr(,"signature")
[1] "object"
attr(,"default")
`\001NULL\001`
attr(,"skeleton")
function (object) 
stop("invalid call in method dispatch to \"Table\" (no default method)", 
    domain = NA)(object)
attr(,"class")
[1] "standardGeneric"
attr(,"class")attr(,"package")
[1] "methods"

我想学习 Table 的代码,以便我可以知道如何制表 GDS 数据集,因为 data.frameas.list 无法强制 S4 类 - 尽管我可以通过例如制表 GDS 数据集,
GDS_table=Table(GDS2853)[1:20000,1:20] #GDS2853 contains 20 columns
and approx 17000 rows 

我按照其他帖子中的建议尝试了 getMethods,但下面是我得到的
> getMethod("Table")
Error in getMethod("Table") : 
  No method found for function "Table" and signature

我还尝试通过放入 package=:GEOquery 来指定“where”,但显然 package 是一个未使用的参数。

想知道我做错了什么,以至于看不到 Table 的源代码。

最佳答案

从您发布的输出来看,Table 看起来像是 S4 通用代码。

要查看其 S4 方法列表,请使用 showMethods() 。要查看特定方法,请使用 getMethod() ,传入所需方法的“签名”以及函数名称。 (“签名”是一个字符向量,由参数的类组成,通用 Table 根据该类执行其方法调度。即,如果您将执行 Table(GDS2853) ,则签名可能是 class(GDS2835) )

以下是获取 sp 包中 S4 方法的代码的示例:

library(sp)

showMethods("overlay")
# Function: overlay (package sp)
# x="SpatialGrid", y="SpatialPoints"
# x="SpatialGrid", y="SpatialPolygons"
# x="SpatialGridDataFrame", y="SpatialPoints"
# x="SpatialGridDataFrame", y="SpatialPolygons"
# x="SpatialPixels", y="SpatialPoints"
# x="SpatialPixelsDataFrame", y="SpatialPoints"
# x="SpatialPoints", y="SpatialPolygons"
# x="SpatialPointsDataFrame", y="SpatialPolygons"
# x="SpatialPolygons", y="SpatialGrid"
# x="SpatialPolygons", y="SpatialPoints"

getMethod("overlay", signature=c("SpatialGrid", "SpatialPoints"))

关于r - 显示 R 包中函数的源代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12679941/

相关文章:

r - 如何将函数仅应用于 R 中数据框中的数字字段(不包括标题)

r - 将图形写入文件不保留顶点名称

r - 使用 roxygen2 自动记录 S4 泛型的所有方法

R texreg : How can I select the gof statistics to be displayed?

r - 如何将包含 S4 对象的大列表写为 CSV 文件?

r - 使用arrangeGrob均衡堆叠图中的ggplot2面板高度

R:重新思考数据(如何重新排列一组列中的一列?)

r - 如何对R中的数据帧执行求和和计数

r - 如何实现 S4 方法的子集替换

c - 使用 .Call() 将 s4 对象发送到 C 结构