假设我有以下对象:
X<-NULL
X$y<-1:10
X$A<-array(1:15,c(3,3,5))
attr(X,"Adim1")<-3
attr(X,"Adim2")<-5
class(X)<-"MyClass"
现在我想更改 的值X$A
,而不选择更改它的尺寸,即我想X$A
拥有以下属性:
# This should work
X$A<- array(1,c(3,3,5))
# This should give an error or be identical with X$A[]<-4 i.e. X$A<- array(4,c(3,3,5))
X$A<- 4
#Actually it should be possible to change the last dimension to 1 but that's just some sugar:
X$A<- array(1,c(3,3,1))
我想知道这种行为可以做到吗?我正在考虑给 x$A 一些类,如“MyClassArray”,并通过适当的检查重载赋值运算符,但通过快速谷歌搜索,似乎不建议甚至可能重载“<-”运算符。那么还有其他选择吗?
我知道它可以使用 S4 类来完成,但我不想混合使用 S3 和 S4。