Re: [問題] R新手提問
就是實作 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我實在看不出個所以然
: 希望大大們能幫我解惑
--
http://apansharing.blogspot.com/
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.117.37.172
※ 編輯: andrew43 來自: 122.117.37.172 (10/25 02:21)
推
10/25 17:17, , 1F
10/25 17:17, 1F
※ 編輯: andrew43 來自: 140.128.117.81 (10/28 20:44)
推
12/03 13:45, , 2F
12/03 13:45, 2F
討論串 (同標題文章)
R_Language 近期熱門文章
PTT數位生活區 即時熱門文章