可能重複:
R: show source code of an S4 function in a package節目源代碼
我下載的軟件包(GEOquery
)中,用一些功能播放。其中一個名爲Table
,據我瞭解,它可以列表S4
數據集。
E.g.
> 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.frame
和as.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
但顯然package
是一個未使用的參數。
不知道我做錯了,以便看不到源代碼Table
。
非常感謝。我必須承認,我仍然不完全明白「簽名」的含義。來自?getMethod的描述對我也沒有多大幫助。但我試過並發現,就像約書亞所提到的那樣,簽名=「GEOData」,getMethod的確給我一些進一步的跟進。 –
一個側面說明 - 只是注意到(加上別人的發佈)showMethods和getMethod似乎是關於「方法」 - 不是太多關於「功能」。由於GDS下載大多是S4類,似乎我需要一個「方法」,而不是「功能」來管理數據集。它是否正確? –
S4方法是函數,就像S3方法是函數一樣。如果你先看幾個S3方法,你可能會更好地解決這個問題。例如,嘗試輸入:'methods(「print」)',然後選擇一些熟悉的,然後看看它們 - 也許是'print.data.table'和'print.lm'。什麼使得這兩個函數的「方法」是它們都可以通過輸入'print(obj)'來調用:*哪個*函數的使用僅取決於'obj'類。 (我們說他們和方法(「print」)返回的100多個其他函數一起是「打印方法」。)HTH。 –