Re: [问题] R新手提问

楼主: andrew43 (讨厌有好心推文后删文者)   2013-10-25 02:12:52
就是实作 S3 物件导向。以下给一个例子。
# 建立一个 function sqrt() 并回传引数的平方值
sqrt <- function(x){
y <- x^2
class(y) <- "sqrt" # 重点:回传值设为 sqrt 物件
return(y)
}
# 建立 sqrt 物件的 plot 方法
plot.sqrt <- function(obj){
cat("calling plot.sqrt\n")
boxplot(obj)
# do something...
}
# 建立 sqrt 物件的 summary 方法
summary.sqrt <- function(obj){
cat("calling summary.sqrt\n")
cat("mean:" , mean(obj) , "\n")
cat("var:" , var(obj) , "\n")
# do something...
}
# 试试下面三个指令看看有什么结果?
abc <- sqrt( c(3,5,7) )
summary(abc)
plot(abc)
以上是 S3 物件导向的基本应用。
※ 引述《jason311 (山根)》之铭言:
: [问题类型]:
: 程式咨询(我想用R 做某件事情,但是我不知道要怎么用R 写出来)
: [软件熟悉度]:
: 新手(没写过程式,R 是我的第一次)
: [问题叙述]:
: 我个人在写function
: 我希望function可以用在plot, summary上
: 例如:plot(pf.fit)会跑出图来
: 那我function要怎么写才有这种功能?
: 像lm这个指令
: 我有x, y值的话
: plot(lm(y~x))
: summary(lm(y~x))
: 都会有output可是看lm里面写的code我实在看不出个所以然
: 希望大大们能帮我解惑
作者: jason311 (山根)   0000-00-00 00:00:00
谢谢大大
作者: gsuper (Logit(odds))   2013-02-03 13:45:00
原来如此

Links booklink

Contact Us: admin [ a t ] ucptt.com