Getting started with the RSNNS package

The Stuttgart Neural Network Simulator (SNNS) is a library containing many standard implementations of neural networks. This package wraps the SNNS functionality to make it available from within R.

package, neural, networks, SNNS

If you have problems using RSNNS, find a bug, or have suggestions, please do not write to the general R lists or contact the authors of the original SNNS software. Instead, you should: File an issue on github (bugs/suggestions), Ask your question on Stackoverflow under the tag RSNNS, or write to the mailing list ( If all that fails, then you can also contact the maintainer directly by email.

If you use the package, please cite the following work in your publications:

Bergmeir, C. and Ben<U+00ED>tez, J.M. (2012), Neural Networks in R Using the Stuttgart Neural Network Simulator: RSNNS. Journal of Statistical Software, 46(7), 1-26.

The package has a hierarchical architecture with three levels:

  • RSNNS high-level api (rsnns)

  • RSNNS low-level api (SnnsR)

  • The api of our C++ port of SNNS (SnnsCLib)

Many demos for using both low-level and high-level api of the package are available. To get a list of them, type:



It is a good idea to start with the demos of the high-level api (which is much more convenient to use). E.g., to access the iris classification demo type:


or for the laser regression demo type:


As the high-level api is already quite powerful and flexible, you'll most probably normally end up using one of the functions: mlp, dlvq, rbf, rbfDDA, elman, jordan, som, art1, art2, artmap, or assoz, with some pre- and postprocessing. These S3 classes are all subclasses of rsnns.

You might also want to have a look at the original SNNS program and the SNNS User Manual 4.2, especially pp 67-87 for explications on all the parameters of the learning functions, and pp 145-215 for detailed (theoretical) explications of the methods and advice on their use. And, there is also the javaNNS, the sucessor of SNNS from the original authors. It makes the C core functionality available from a Java GUI.

Demos ending with "SnnsR" show the use of the low-level api. If you want to do special things with neural networks that are currently not implemented in the high-level api, you can see in this demos how to do it. Many demos are present both as high-level and low-level versions.

The low-level api consists mainly of the class SnnsR-class, which internally holds a pointer to a C++ object of the class SnnsCLib, i.e., an instance of the SNNS kernel. The class furthermore implements a calling mechanism for methods of the SnnsCLib object, so that they can be called conveniently using the "$"-operator. This calling mechanism also allows for transparent masking of methods or extending the kernel with new methods from within R. See $,SnnsR-method. R-functions that are added by RSNNS to the kernel are documented in this manual under topics beginning with SnnsRObject$. Documentation of the original SNNS kernel user interface functions can be found in the SNNS User Manual 4.2 pp 290-314. A call to, e.g., the SNNS kernel function krui_getNoOfUnits(...) can be done with SnnsRObject$getNoOfUnits(...). However, a few functions were excluded from the wrapping for various reasons. Fur more details and other known issues see the file /inst/doc/KnownIssues.

Another nice tool is the NeuralNetTools package, that can be used to visualize and analyse the networks generated with RSNNS.

Most of the example data included in SNNS is also present in this package, see snnsData.

A comprehensive report with many examples showing the usage of RSNNS, developed by Seymour Shlien, is available here:


Bergmeir, C. and Ben<U+00ED>tez, J.M. (2012), 'Neural Networks in R Using the Stuttgart Neural Network Simulator: RSNNS', Journal of Statistical Software, 46(7), 1-26.

General neural network literature:

Bishop, C. M. (2003), Neural networks for pattern recognition, University Press, Oxford.

Haykin, S. S. (1999), Neural networks :a comprehensive foundation, Prentice Hall, Upper Saddle River, NJ.

Kriesel, D. ( 2007 ), A Brief Introduction to Neural Networks.

Ripley, B. D. (2007), Pattern recognition and neural networks, Cambridge University Press, Cambridge.

Rojas, R. (1996), Neural networks :a systematic introduction, Springer-Verlag, Berlin.

Rumelhart, D. E.; Clelland, J. L. M. & Group, P. R. (1986), Parallel distributed processing :explorations in the microstructure of cognition, Mit, Cambridge, MA etc..

Literature on the original SNNS software:

Zell, A. et al. (1998), 'SNNS Stuttgart Neural Network Simulator User Manual, Version 4.2', IPVR, University of Stuttgart and WSI, University of T<U+00FC>bingen.

javaNNS, the sucessor of the original SNNS with a Java GUI:

Zell, A. (1994), Simulation Neuronaler Netze, Addison-Wesley.

Other resources:

A function to plot networks from the mlp function:

See Also

mlp, dlvq, rbf, rbfDDA, elman, jordan, som, art1, art2, artmap, assoz

  • RSNNS-package
Documentation reproduced from package RSNNS, version 0.4-12, License: LGPL (>= 2) | file LICENSE

Community examples

Looks like there are no examples yet.