You don't say, but my guess is you created the package without a namespace.
For reasons that are not too clear at the moment, the namespace seems to
be needed. At any rate, replicating your experiment with the argument
namespace=TRUE to package.skeleton() worked:
> require(TestClass2)
Loading required package: TestClass2
> TestClass$new()
An object of class "TestClass"
<environment: 0x100df2e38>
Without that I replicated your result.
Namespaces are a good idea anyway, though other things being equal it
would be nice not to require them. For the moment, though, we do.
John
On 2/2/11 7:25 PM, Jeffrey Horner wrote:
Hi,
I'm trying to create a package that contains reference class
definitions from which users can create reference objects, but there
seems to be something awry.
My toy example creates an empty package via
package.skeleton('TestClass') to which I add the following R code:
TestClass<- setRefClass('TestClass',fields=c('name'))
Unfortunately my R console output bears this:
library(TestClass)
TestClass$new(name='foo')
Error: attempt to apply non-function
getRefClass('TestClass')$new(name='foo')
Error: attempt to apply non-function
Creating the same reference class in the global environment works though:
x<- setRefClass('TestClass',fields='name')
x$new(name='foo')
An object of class "TestClass"
<environment: 0x82a43cc>
I'm new to S4 and reference classes, so maybe I'm missing something fundamental?
Jeff
sessionInfo()
R version 2.13.0 Under development (unstable) (2011-02-02 r54197)
Platform: i686-pc-linux-gnu (32-bit)
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
[5] LC_MONETARY=C LC_MESSAGES=en_US.UTF-8
[7] LC_PAPER=en_US.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices datasets utils methods base
other attached packages:
[1] TestClass_1.0
loaded via a namespace (and not attached):
[1] tools_2.13.0
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel