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語言包有哪些?