作者Tamih (.....)
看板Statistics
標題Re: [問題] 如何看R的程式碼
時間Mon Jan 5 23:58:21 2009
※ 引述《KirinGuess (Kirin)》之銘言:
: 請問在使用R時,怎樣才能看到各種功能的程式碼。
: 我有找到到3種方法:
: 1. 在功能名之前加「stat.」 ,例如:stat.anova
這個說法錯誤~!
stat.anova 跟 anova 這兩個函數是不同作用的~!
你可以看看他們的說明或者函數內所使用的引數...
: 2. 在功能名之後加「.default」,例如:qqnorm.default
這是當函數有多個方法的時候,
函數設計者為不同方法所取的函數名字,
但不一定每個多方法的函數都有這 .default 的用法。
關於什麼是「方法」見我下面所述...
: 3. 直接輸入功能名 ,例如:cor
當直接輸入函數能取得函數內容時,表示其函數只有一種方法。
R 裡面所謂的方法類似物件導向的觀念,
函數會針對他所處理的物件型態,去找真正用的函數,
例如 plot 這函數,我們知道他可以畫 x, y 的散佈圖,
其實他是使用了 plot.default 這支函數在畫圖,而 plot 還有很多不同方法,
可以使用 methods 這函數來查詢該函數有哪些方法,
就像 plot 的話:
> methods(plot)
[1] plot.acf* plot.data.frame* plot.Date*
[4] plot.decomposed.ts* plot.default plot.dendrogram*
[7] plot.density plot.ecdf plot.factor*
[10] plot.formula* plot.hclust* plot.histogram*
[13] plot.HoltWinters* plot.isoreg* plot.lm
[16] plot.medpolish* plot.mlm plot.POSIXct*
[19] plot.POSIXlt* plot.ppr* plot.prcomp*
[22] plot.princomp* plot.profile.nls* plot.spec
[25] plot.spec.coherency plot.spec.phase plot.stepfun
[28] plot.stl* plot.table* plot.ts
[31] plot.tskernel* plot.TukeyHSD
就有上述 32 種方法,
譬如 plot.lm 就是當你 plot 這支函數裡面放的是 lm 所建立出來的物件時,
所會用到的真實函數... 等等各種方法亦是如此,
只是使用 plot 這函數,可以省略後面,
他會直接針對物件型態尋找正確的真實函數來使用。
所以只要你利用 method 這函數找到真實的函數名字(後接 * 無法顯示),
直接打他名字就能顯示出他函數的程式原貌~!
如我有錯,請各位糾正~!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.169.114.46
1F:推 KnightX:好熟的解釋... xD 01/06 00:03
2F:→ Tamih:K大, 不好意思把你之前教的搬上來... :P 01/06 00:04
3F:→ clickhere:cor.test 即屬於 * 的函式!! 01/06 01:33
4F:推 KirinGuess:謝謝您的說明。 01/06 03:01