2012-09-25 16 views
7

包中的所有內容(不只是對象)這可能是一個新手的問​​題,但我認爲我做了我的功課,但還沒有找到答案(我希望找到),所以我在這裏發佈它尋求一些幫助。查看R

類似的問題以前問過但我發現,沒有回答能幫助我當前的問題,除了一個「貴」的解決方案,這需要R.

的編輯,我瞭解到,lsobjects讓我們查看包內的對象。但即使有ls(all.names=TRUE),我仍然看不到全部的內容。有人建議ls(getNAMEspace),但對我來說這還不夠「好」。

例如

>search() 
[1]".GlobalEvn"  "package:TCGAGBM" 
>ls("package:TCGAGBM") 
character(0) 
>ls(getNamespace("TCGAGBM"),all.names=TRUE) 
[1]"._NAMESPACE_." "._S3MethodsTable_." ".packageName" 

然而,C(CMD)下,我看到以下

C:\用戶\ XYZ \文件\ r \ R-2.15.1 \庫\ TCGAGBM 。 ..數據擴展數據......(共3個文件(S),7迪爾(S))

我碰到這種 「差異」 當我看到劇本的下面一行 -

>clinical=read.delim(system.file(
+"extdata/Clinical/clinical_patient_public_GBM.txt.gz", 
+package="TCGAGBM"), header=TRUE) 

因此,我想知道R下是否有方法查看包中的所有內容,以便我們可以「知道」如何更好地利用該包。小插曲可能會有所幫助,但是到目前爲止,在我對R的有限體驗中,我發現一些軟件包沒有配備Vignette。

任何意見可以理解,以幫助我學習遠遠更多R.

+2

你想查看所有的源代碼文件等?如果你想查看包目錄的內容,可以嘗試一下'list.files(system.file(package ='TCGAGBM'),recursive = T,full.names = T))' - 但這將取決於操作系統你可以看到多少實際看到的'R'包的方式是爲windows/linux等 – mnel

+0

也許'data(package ='TCGAGBM')' – GSee

+0

根據谷歌搜索'TCGAGBM r package',似乎有一個教程這個包在http://watson.nci.nih.gov/~sdavis/tutorials/TCGA_data_integration/。也許最好從此開始?挖掘一個包的內部是最後的手段... –

回答

5

我的首選方法是簡單地看問題包的源代碼

事實上,實際上,我經常在運行CRANberries時創建本地CRAN鏡像作爲副作用。但即使您不這樣做,CRAN軟件包也只是一個快速下載,並且會在解析代碼排除的源代碼中出現,其評論

編輯:我剛剛找到了本人發現的東西:Sean Davis在http://watson.nci.nih.gov/~sdavis/tutorials/TCGA_data_integration/的頁面 - 看起來它也使用了一些BioC軟件包。我仍然會研究通常比已安裝的軟件包有更多評論,註釋,額外...的源代碼。但也許這只是我的偏好。 YMMV,正如他們所說。

+0

非常感謝,夥計們。嗯,我認爲現在list.files將完成這項工作。對本,我閱讀教程,但正在思考(在閱讀時)如果我沒有教程,如何知道有一個「extdata」提取更多信息?謝謝所有有用的信息很多,因爲我只是一個3個月的R嬰兒仍然找到我的方式。 –

+0

@BChen:我的榮幸,歡迎來到StackOverflow。按照慣例,你可以提出一個好的答案(你可能會也可能沒有這樣做),並且如果被認爲有幫助的話,接受一個答案。 –

2

如果想看到所有的系統文件爲特定pacakges

試着這麼做

list.files(system.file(package = 'TCGAGBM'), recursive = T, full.names = T)) 

這是多麼有用將取決於您的操作系統,如包的安裝方式取決於操作系統

有關更多詳細信息,請參見R Installation and Administration manual中的相應部分。

注:

@檢查源的DirkEddelbuettel的建議是更好的辦法。

+0

會跟進此事,但截至目前,嬰兒無法知道如何使用「字典」 –

3

這是探索任何包的功能的另一種方法。雖然它不像德克那樣全面,但仍然有用。當我想知道一個包的所有功能時,我很快列出了它的所有功能。然後,如果我對任何功能感到好奇,我會迅速提起幫助文件?function_name並查看它的功能。出於這個原因,我在.rprofile中保留了這個函數,所以每次運行R時它都會自動加載。

lsp <- function (package, all.names = FALSE, pattern) { 
    package <- deparse(substitute(package)) 
    ls(pos = paste("package", package, sep = ":"), all.names = all.names, 
     pattern = pattern) 
} 

這是特別有用的,當我知道一個函數的部分名稱和它所屬的,但很快需要找到它什麼包。

例如

> lsp(ggplot2, pattern = "geom") 
[1] "geom_abline"   "geom_area"   
[3] "geom_bar"    "geom_bin2d"   
[5] "geom_blank"   "geom_boxplot"   
[7] "geom_contour"   "geom_crossbar"  
[9] "geom_density"   "geom_density2d"  
[11] "geom_dotplot"   "geom_errorbar"  
[13] "geom_errorbarh"  "geom_freqpoly"  
[15] "geom_hex"    "geom_histogram"  
[17] "geom_hline"   "geom_jitter"   
[19] "geom_line"   "geom_linerange"  
[21] "geom_map"    "geom_path"   
[23] "geom_point"   "geom_pointrange"  
[25] "geom_polygon"   "geom_quantile"  
[27] "geom_raster"   "geom_rect"   
[29] "geom_ribbon"   "geom_rug"    
[31] "geom_segment"   "geom_smooth"   
[33] "geom_step"   "geom_text"   
[35] "geom_tile"   "geom_violin"   
[37] "geom_vline"   "update_geom_defaults" 
+0

這很好。我一直在ESS中使用TAB,它給出了大致相同的內容,但是這會過濾內部名稱。令人討厭的注意事項:儘管如此,你的確在右側有大括號。R核心風格。 –

+0

難道要記住這個語法'ls('package:ggplot2',pattern ='geom')'?如果你打算看看函數的幫助頁面,可能'help(package ='ggplot2',help_type ='html')'更合適。 – GSee

+0

打字少得多。 – Maiasaura