继承派生

浅谈R语言的面向对象编程

為{幸葍}努か 提交于 2020-03-13 00:50:28
R语言有两种不同的OOP机制,分别是从其前身S语言继承而来的S3 Object和S4 Object,其中S4 Object更加的正式、也是现在用于开发的主力军,所以本文就从S4 Object谈起,并在最后讨论一下古老的S3 Object。 那我们就开始吧!首先我们来设计一个时间序列类,在它的内部,需要包含主数据、起始时间与截止时间、取样间隔这些数据。在R中我们可以定义如下: setClass("TimeSeries", representation( data = "numeric", start = "POSIXct", end = "POSIXct" ) ) 在这段代码中,data/start/end用于存放数据,称作“槽(slot)”。 现在我们已经定义了一个类,我们就来创建一个TimeSeries对象吧! My_TimeSeries <- new("TimeSeries", data = c(1,2,3,4,5,6), start = as.POSIXct("01/12/2015 0:00:00", tz = "GMT", format = "%m/%d/%Y %H:%M:%S"), end = as.POSIXct("12/04/2015 0:00:00", tz = "GMT", format = "%m/%d/%Y %H:%M:%S") ) 与其他OOP语言类似