Hi all,
I'm trying to do some object-oriented programming in R using the R.oo
package.
Right from the start I encountered a strange (at least for me) problem. I
define a new class/constructor based on the R.oo documentation.
However the first attempt to create an object fails:
=== Code: ===
library(R.oo);
setConstructorS3("MyClass",function(param) {
print(param);
extend(Object(),"MyClass", .param=param);
})
print("Attempt1");
obj = MyClass(1);
=== Output: ===
Loading required package: R.methodsS3
R.methodsS3 v1.0.3 (2008-07-02) successfully loaded. See ?R.methodsS3 for
help.
R.oo v1.4.6 (2008-08-11) successfully loaded. See ?R.oo for help.
[1] "Attempt1"
[1] 1
Error in print(param) : argument "param" is missing, with no default
===
Yet a second attempt, within the same session, calling the same constructor
with the same parameters works!
=== Code: ===
print ("Attempt2");
obj = MyClass(1);
print(obj);
=== Output: ===
[1] "Attempt2"
[1] 1
[1] "MyClass: 0x140154948"
====
What I am doing wrong? Seems that the constructor definition does not come
fully into effect before I call if for the first time (apparently too late)
thanks in advance, V.
=== sessionInfo ===
R version 2.6.2 (2008-02-08)
i486-pc-linux-gnu
locale:
LC_CTYPE=en_IE.UTF-8;LC_NUMERIC=C;LC_TIME=en_IE.UTF-8;LC_COLLATE=en_IE.UTF-8;LC_MONETARY=en_IE.UTF-8;LC_MESSAGES=en_IE.UTF-8;LC_PAPER=en_IE.UTF-8;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=en_IE.UTF-8;LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] R.oo_1.4.6 R.methodsS3_1.0.3
loaded via a namespace (and not attached):
[1] rcompgen_0.1-17 tcltk_2.6.2 tools_2.6.2
[[alternative HTML version deleted]]
______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.