我正在尝试用R6对象学习R中的OOP。我有一个看似简单的问题,但无法弄清楚如何做到这一点。任何帮助表示赞赏
假设我有一个对象类,说“学生”有一些数字特征,例如: *我希望有这样的对象的组合,比如“课堂”,并且能够对整个“学生”特征矩阵进行计算,例如将所有“学生”成绩乘以一些权重。
Student <- R6Class(
"Student",
public = list(
grades = NULL,
initialize = function(grades) {
if(!missing(grades)) {self$grades <- grades}
},
mult.by.vector = function(v){
newgrades <- self$grades*v
return(Student$new(grades=newgrades)
)
}
)
)
John<-Student$new(c(4,5,5))
John$mult.by.vector(c(1.1,1.2,0.9))
Ann<-Student$new(c(5,4,4))
现在,我希望有一个Ann和John的作文,并且能够同时在两者上执行mult.by.vector。
我应该使用继承吗?或者只是一些清单?
*实际上,我的应用程序非常不同,但问题或多或少相同。