R語言中S3,S4,RC結構都分別是什麼?

R小白一隻,最近看到了關於S3,S4還有RC,但是看了相關的文章R語言基於S3的面向對象編程 還是沒太搞明白這些都是什麼,但是感覺似乎S4是面向對象的,具體想知道這些分別是什麼,都能怎麼用。感謝大家~~


ggplot2 等包已經實現了向 R6 面型對象系統的過渡。


三年前 R 語言會議上的一個 slide,大神指導後的現學現賣。關於 S3 和 S4 的內容還能用,其他的已經發展地太快,跟不上了。

http://cos.name/wp-content/uploads/2012/11/ChinaR2012_SH_Nov04_07_WYC.pdf


謝邀,手機簡要回答。

這些都是面向對象的實現方法,由於R語言的開放性,時不時有新的實現方法出現,但是舊的為了兼容也不便刪除。

舉個我用RC的例子:

library(RMySQL)
library(data.table)
library(Rcpp)

Wind_Connect&<-setRefClass("Wind_Connect", fields = list(the_source = "character",the_username = "character", the_password = "character", the_type = "character", data = "data.table", sever = "MySQLConnection"), methods = list( initialize = function(the_source, the_username = "NULL", the_password = "NULL") { the_type &<&<- ifelse(the_source %like% "Rdata", "file", "sever") if (the_type == "sever") { sever &<&<- dbConnect(drv = MySQL(),user= the_username ,password = the_password,dbname="wind_new",host = the_source); dbSendQuery(sever,"SET NAMES utf8") dbSendQuery(sever,"SET character_set_database ="utf8";") }else { load(the_source) data &<&<- simple_data setkey(data, S_INFO_WINDCODE, TRADE_DT) } the_source &<&<- the_source the_username &<&<- the_username the_password &<&<- the_password }, avalibale_date_after = cppFunction("IntegerVector avalibale_date_after(IntegerVector dates, IntegerVector date_list){ IntegerVector res(dates.size()); int j = date_list.size()-1; for(int i = dates.size()-1; i&>=0; i--){
while(date_list[j] != dates[i] date_list[j-1] &>= dates[i]) j--;
res[i] = date_list[j];
}
return(res);}"),
avalibale_date_before = cppFunction("IntegerVector avalibale_date_before(IntegerVector dates, IntegerVector date_list){
IntegerVector res(dates.size());
int j = 0;
for(int i = 0; i&


我今天剛寫了一篇博文,是關於S3對象的,不知道能否幫到題主。

R語言高級編程系列之面向對象的類型系統--S3對象 - 何燕傑 - 博客園


S3里的"3"其實版本號.

S語言3.0引入了S3類型,4.0引入了S4類型.


@z94448 真的假的,我看ggplot2還是R3啊


推薦閱讀:

用戶分析有哪些經典的模型和方法,如何系統的學慣用戶分析?
如何系統地學習 R 語言的各種 packages?
如何讓R語言寫出來的程序生成一個獨立的可執行文件?
python 可不可以像R那樣保存內存中的變數?
當下對於量化投資有用的R語言包有哪些?

TAG:編程語言 | 面向對象編程 | 統計軟體 | R編程語言 |