[R] Validity check when setting slot
Renaud Gaujoux
renaud at mancala.cbio.uct.ac.za
Mon Aug 10 17:19:12 CEST 2009
Hi,
I'm wondering if the following behaviour is normal:
setClass('A', representation(number='numeric'),
validity=function(object){
if( object at number < -1 ) return("Invalid number"); TRUE})
>[1] "A"
a <- new('A')
a
>An object of class “A”
>Slot "number":
>numeric(0)
a at number <- 0
a at number <- -3
a
>An object of class “A”
>Slot "number":
>[1] -3
So: the slot is set to an invalid value according to the validity method
and nothing happens (no error) whereas the doc says:
"The replacement forms do check (except for
'slot' in the case 'check=FALSE'). So long as slots are set
without cheating, the extracted slots will be valid."
Thanks,
Renaud
> sessionInfo()
R version 2.9.1 (2009-06-26)
i486-pc-linux-gnu
locale:
LC_CTYPE=en_ZA.UTF-8;LC_NUMERIC=C;LC_TIME=en_ZA.UTF-8;LC_COLLATE=en_ZA.UTF-8;LC_MONETARY=C;LC_MESSAGES=en_ZA.UTF-8;LC_PAPER=en_ZA.UTF-8;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=en_ZA.UTF-8;LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
More information about the R-help
mailing list