Release Notes for S-PLUS 7 Release for Windows (April 2005)

These release notes are current as of April, 2005. This file contains the following information:

·         About this Release

·         What's New in ·S-PLUS 7

·         Known Issues in S-PLUS 7

·         Changes to Language Functions

·         Supported Platforms and System Requirements

·         Installing S-Plus

·         Running S-Plus

·         Getting Help in S-Plus

·         Compilers/Linkers

·         Contact Information for Feedback

About This Release

S-PLUS 7 is a major new release of the S-PLUS Product Family, with a focus on providing a robust environment for creating statistical applications applied to very large data sets. S-PLUS 7 is available in two editions: S-PLUS 7 Professional Developer and S-PLUS 7 Enterprise Developer, and improves upon S-Plus 6.2 in the following main areas:

Available in S-PLUS 7 Enterprise Developer:

·         Big Data library

·         S-Plus Workbench developer tools

Available in S-PLUS 7 Enterprise Developer and S-PLUS 7 Professional Developer:

·         New correlatedData library

·         Improvements to timeSeries objects

·         Improved GUI responsiveness

·         Support for 4GT RAM tuning

·         FLEXnet license management system

·         Various new functions and other minor new capabilities

There are also a number of enhancements to existing functions, and improvements to quality in several areas.

What's New in S-PLUS 7

S-PLUS 7 includes a variety of new features that extend S-Plus capabilities. Major additions include:

·         New Big Data library (Enterprise Developer only)

·         S-Plus Eclipse Workbench developer tools (Enterprise Developer only)

·         New FLEXnet license manager

·         Financial Database Access

·         New correlatedData library

·         Support for 4GT RAM Tuning

·         Updated Winjava Library to use JRE 1.4.2

·         Improved responsiveness of Windows GUI

·         New Installer

·         New Functions

·         New Model Type: Cox Mixed Effects Models

·         Time Series Improvements

·         New Color Scheme for Graphics Devices

·         Higher Quality Graphlet Printing Capability

·         Other Enhancements

·         Fixed bugs

This section briefly describes these new features and other enhancements.

Enterprise Developer Features

·         New Big Data Library

(Enterprise Developer only.) The Enterprise Developer edition of S-PLUS 7 introduces the Big Data library. The Big Data library provides functionality for efficiently manipulating and analyzing out-of-memory data. The Big Data library functions have no limits on the number of rows in the data. As summary information is computed and stored for each column, the number of columns is slightly limited, with the current implementation supporting tens of thousands (10,000s) of columns on a typical machine.

The Big Data library loads only by default in the Windows S-Plus GUI and the S-Plus Workbench on Windows. The Big Data library is not loaded by default when you start S-Plus from the Windows Command line, from BATCH mode, as a Console application. Always load the Big Data library if you work with big data projects. (If you start a big data project without having loaded the Big Data library, you will see errors when you run your script.)

Find help for the Big Data library in the S-PLUS Enterprise Developer User’s Guide, which is available from the Help > Online Manuals menu in S-PLUS 7. Help topics for individual functions are integrated in the Language Reference, also available from the Help menu.

·         S-Plus Workbench Developer Tools

(Enterprise Developer only.) The new S-PLUS Workbench is our first release of an integrated environment for S code development, based on the Eclipse framework. This release offers the core functionality of code editing, syntax error detection, project and task management, interfaces with source code control systems, and interaction with the S language engine. In future releases we plan to extend this environment based on customer feedback, with a view to making the S-PLUS Workbench a complete environment for robust and professional code development in the S language.

Find help for the S-Plus Workbench in the S-Plus Enterprise Developer User’s Guide, Chapter 2, which is available by navigating to Help > Online Manuals in S-PLUS 7.

New FLEXnet License Manager

In response to demand from commercial customers seeking an industry-standard system for managing software licenses, the S-PLUS Product Family now uses the FLEXnet system from Macrovision (previously known as FlexLM) for license management. The interface for managing licenses and monitoring license usage will be familiar to many systems administrators, and offers a much greater degree of flexibility and reliability than the license management system used in previous releases of S-PLUS.

Note that all editions of S-PLUS, including single-user desktop licenses, now require validation of an active license at install time. For most installations this process should be completely transparent. Further information about the license management system can be found in the Installation and Administration Guide, found by navigating the Help > Online Manuals.

Financial Database Access

You can import data from the leading financial databases—Bloomberg, FAME, and MIM—for statistical and graphical analysis. Load the financedb library from the main menu by navigating to File > Load Library or entering the following in the Commands window:

>library(financedb)

Note that all the current functions in the financedb library were available as part of the core S-PLUS 6.2 distribution. In this release, these functions have been repackaged in a separate library, but no new functions have been added.

This library contains all the relevant functions for importing and exporting data, including customizing the dialogs. Help is available for all the financial-related functions from the Commands window, and you can also access help from the main menu by navigating to Help > Available Help > financedb.

You can also add financedb to your S.chapters file to re-activate the import features and dialogs from S-Plus 6.2.

New correlatedData Library

This library compares favorably to elements of SAS PROC GENMOD, PROC MIXED and the GLIMMIX macro. It has significant applications in life sciences, finance and other markets. In life sciences, for example, its use is particularly relevant in the clinical development area. Load the correlatedData library from the main menu by navigating to File > Load Library or entering the following in the Commands window:

>library(correlatedData)

Support for 4GT RAM Tuning

By using Microsoft 4GT RAM Tuning, S-PLUS 7 for Windows supports the ability to address larger amounts of RAM than the earlier versions were capable of. This capability was first available in S-PLUS 6.2 Server. It is now provided in all variations of the S-PLUS 7 for Windows engine.

Operating systems based on Microsoft® Windows NT® provide applications with a 4 GB virtual address space. The virtual address space is divided such that 2 GB is available to the application, and the remaining 2 GB is available only to the system. The 4GT RAM Tuning feature increases the memory available to the application to 3 GB, and reduces the amount available to the system to 1 GB. While this feature benefits applications that run on computers with more than 2 GB of physical memory, it also increases the RAM available to applications when less RAM is present.

This feature enables applications to use the first 3 GB of the address space on the following systems:

·         Windows Server 2003 family

·         Windows 2000 Advanced Server

·         Windows 2000 Datacenter Server

The following is required to take advantage of 4GT RAM Tuning:

·         The machine must have at least 4GB of RAM.

·         The /3GB switch must be specified in the operating system’s boot.ini file. (The installer does not change the boot.ini file. You must add the switch.)

Note:  The additional RAM is not available if S-PLUS is called from an executable that is not 4GT RAM Tuning-enabled. This situation occurs when S-PLUS is called via Connect/C++ or Connect/Java. An example of this is calling the S-PLUS engine from a java application such as Insightful Miner.

Adding the /3GB switch to the boot.ini file

Boot.ini is a text file located at the root of the system partition, typically c:\boot.ini. It stores boot options for computers with BIOS firmware, namely, computers with x86 and x64-based processors. When the computer starts, the Windows boot loader, Ntldr, reads the boot.ini file and displays the entries for each operating system in the boot menu. Then, Ntldr loads the selected operating system in accordance with settings in the boot.ini file.

By default, on NTFS drives, the system, hidden, archived, and read-only attributes are set to protect the boot.ini file; however, members of the Administrators group can change these attributes. The file attributes do not affect the operation of boot loader.

You can edit the boot.ini file on a computer with BIOS firmware (x86 or x64) by using Bootcfg (bootcfg.exe), a tool included in Windows XP and later versions of Windows, or by using a text editor such as Notepad.

Caution: Because Bootcfg protects certain attributes of the boot.ini file, and because manual editing using a text editor is prone to error, you should use Notepad only if Bootcfg is not available.

Microsoft provides instructions articles on 4GT tuning, and for for editing the boot.ini, on the Microsoft MSDN Web site, http://msdn.microsoft.com/library.

·         To find information about 4GT RAM Tuning, at this site, search for “4GT RAM Tuning.”

·         To find information about editing the boot.ini file, at this site, search for boot.ini.

·         To find information about the /3GB switch, at this site, search for /3GB.

Updated Winjava Library to use JRE 1.4.2

The Java Runtime Environment has been updated to version 1.4.2 for the Winjava library. The updated Java Runtime Environment is also used for the Big Data library (Enterprise Developer only), which loads Winjava.

Improved responsiveness of Windows GUI

The S-PLUS GUI on Windows no longer blocks when the S engine is performing computations. This means that you can move windows or edit files while computations take place. Note than menu items and other features that require the S engine for computation will be disabled until the current computation completes.

The S-PLUS GUI now features a progress bar displaying the status of the current computation. The progress bar is especially useful when you import large data sets using functions available in the Enterprise Developer edition.

New Installer

The new S-Plus installation program is now fully compliant with Microsoft’s Windows Installer technology, so you can use features of the Windows Installer to customize how you install and deploy the S-Plus installation.

Further, the new S-Plus installation supports improved automation via our own automate.ini script file. You now have more control over target paths, application startup settings, network license management settings, and whether various install dialogs appear or not during the installation.

For more information on how to automate the S-Plus installation or how to run a quiet installation, see the comments in the script file called automate_sample.ini, located at the top level of your S-PLUS Windows CD.

New Functions

·         Use the following new functions to compute minimum, maximum, or range by row or column:

·         colMins

·         colMaxs

·         colRanges

·         rowMins

·         rowMaxs

·         rowRanges

·         Use the new function allTrue in combination with all.equal for writing automated tests to be called by do.test.

·         Use the new function expectWarnings to write your own automated tests (i.e., to be run using "do.test"). Using expectWarnings, you can suppress unavoidable warnings and test that warnings your functions should produce do occur. (This function has no Help topic in this release.)

·         Use the new function pedigree for support for pedigree plotting. See its Help topic in the Language Reference for more information.

·         Use the new function bdsmatrix for support for sparse block diagonal matrix objects. See its Help topic in the Language Reference for more information.

·         Use the new function unname, which removes names or dimnames from a object. This can make calculations run much faster (see example in the help file)

New Model Type: Cox Mixed Effects Models

The new function coxme allows you to fit a Cox model with random effects to censored data. Random effects can be specified with a syntax similar to that used for linear mixed-effects models with lme().

timeSeries Object Improvements

The following new methods and functions for timeSeries and similar objects are now available:

·         More powerful column-wise summary statistics for timeSeries objects are now available:

·         {col, row} {means, sums, vars, stdevs, mins, maxs, ranges}

·         col {products, medians, quantiles} etc.

·         New powerful functionalities to compute the length of time series, lags of time series, differences of time series, sort time series, and random sample time series:

·         seriesLength(), seriesLag(), diff method, sort, sample method

·         New function to detect month end dates:

·         is.monthend()

·         New method functions for arima modeling and a new arima prediction function:

·         summary, coef, vcov, residuals, fitted, predict

·         New powerful multiple timeDate, bdTimeDate and time series-sensitive subscripting, such as

·         myTimeSeries[ timeEvent( c("1/1/01", "1/1/02"), c("4/1/01", "4/1/02") ), cols ]

·         myTimeSeries[ timeEvent( "1/1/01", "1/1/02" ), cols ] <- myNewData

·         Improved delta t and frequency method for time series to accommodate end of month regular time series and to be consistent with old style time series classes.

·         More functions now work with time series objects:

·         apply, lapply, hist, density, pmin, pmax, order, rank, chisq.gof, ks.gof, cdf.compare, cor.test, var.test, t.test, wilcox.test, pairs, barplot, boxplot, lsfit, l1fit, rreg, lmsreg, ltsreg, location, ms, nls, nnls.fit cov.mcd, cov.mve, cov.wt, kmeans, dist, mclust, princomp, factanal, etc.

·         Improvements to plot and trellisPlot (which also apply to signalSeries):

·         xlim and ylim are now fully supported (they were not in previous releases).

·         You can now use the at and labels arguments to axis.time and axis.numeric (via the x.axis and y.axis arguments to plot and trellisPlot) to override the default axis tick mark positions and labels.

New Color Scheme for Graphics Devices

The default colormaps for the various graphics devices have been changed so they all gave a fairly similar result. The color settings were chosen to work well with both ordinary and Trellis style plots.

The main difference is in the image color settings. For color plots, various shades of blue from light (low values) to dark (high values) are now used. For black-and-white devices, the shades of gray are now light gray (low values) to dark gray (high values). All graphics devices now automatically have the trellis.settings attribute set for them.

If you want to use the old color settings, do the following:

Device

Description

Graphsheet

Run the function:
stdImageColorSet(blue=F)

This must be done in every session because stdImageColorSet(blue=T) is called in the startup file S.init. You can remove the call to stdImageColorSet in S.init; the file is in the top level directory where S-PLUS is installed (Program Files\Insightful\splus70 by default). Note that this may change for the release.

java.graph device

The old colorscheme is available in the list java.colorscheme.standard.6.2. If you do:
java.colorscheme.default <- java.colorscheme.standard.6.2

then all subsequent calls to java.graph (where the colorscheme argument is not explicitly set) in the current project directory will use the old colorscheme. If you switch to a different project directory you will need to create the java.colorscheme.default object (as shown above) again.

pdf.graph and wmf.graph

Set the colorspec argument to pdf.colors.6.2 or pdf.grays.6.2 to get the old colormaps.

PostScript device

You can set the new argument, old.style=T to get the old behavior.

A new argument,
color.p has been added to the PostScript device. Setting color.p=T (or just color=T) will create color PostScript output using the new colormaps. The default is color.p=F so that postscript will continue to produce black-and-white postscript by default.

The behavior and setting of graphics devices started with the
trellis.device function has not changed.

Higher Quality Graphlet Printing Capability

The graphlet code in spjgraph.jar now determines whether the graphlet is running in a JVM (Java Virtual Machine) that can handle the more-recent Java printing (including rotated fonts), and uses this when printing from the graphlet Print button.  In particular, plot labels print much better; the previous code caused the characters to print with "jagged" edges.

If the JVM is old (such as the default Microsoft JVM in Internet Explorer), then the printing is the same as before. To get the new printing, you will need the Java Plug-in.

For comparison purposes, you can get the old printing behavior (even with a new JVM) by specifying the applet property:

<PARAM NAME=spjgraph.graphics.2d VALUE=FALSE>

The new printing code uses a new Print dialog box, where the printer is specified with a separate Printer button.

The changed code affects only the print quality when you use the graphlet Print button to print the contents of the Graphlet. It does not improve the print quality when you print a whole browser page that includes a Graphlet. We believe this is because of the way that browsers handle printing Java applets (and therefore is beyond our control).

For example, try printing out the page

http://www.insightful.com/products/graphlets/gallery/TestJavaApplet.asp

which contains a simple applet drawing a box with crossed lines. In the printed page, the diagonal lines print characters with "jagged" edges.

Other Enhancements

Graphlets

·         Now, you can import images (such as maps generated by other applications, in formats such as *.jpg and *.gif) into S+Graphlets, so that hot regions for drill-down links and tool-tip displays can be defined and displayed on top of such images.

·         The SOAP Query action now works in the current jar file.

·         Graphlets now allow action (as with 'java.identify') for a non-rectangular area.

GUI

·         Buffered output is now supported in the Script window. This support is controlled by the same option in the Command Line options dialog box and Ctrl-W.

·         Added decimal.point and thousands.separator to the Import Data and Export Data dialog boxes in Windows GUI.

·         The S-PLUS Windows GUI now supports dual-monitor displays.

·         The shortcut key F9 now is an additional key (with F10) to run code in the S-PLUS GUI. Previously, this key refreshed graphs.

Integration

·         SBATCH provides the option to start the console (sqpe.exe) of S-PLUS for Windows. The default behavior continues to start the full S-PLUS (splus.exe). The console version does not start up the GUI, which frees memory for analyzing larger data sets.

IO

·         Native/ODBC Connectivity: You now have the ability to maintain a connection to a database while executing a series of SQL statements, allowing the creation of session-based temporary tables.

·         Changed the default for options()$time.out.format from

     "%02m/%02d/%Y %02H:%02M:%02S.%03N"
to
     "%02m/%02d/%04Y %02H:%02M:%02S.%03N"

This highlights errors where example datasets reported the wrong year.

Language

·         dim for the timeSeries or signalSeries object now returns matrix dimensions.

·         The help file for deprecated functions has been updated.

·         Trellis graphics now allow the change of cex in tick mark lables on the x and y axis. For example, dotplot(formula,cex=2) affects only font size within panels, but not on the axis.

·         The function match.path() was added. This function determines whether two paths refer to the same item.

·         Added "GDT" (GMT daylight time) to the time zone list. Otherwise converting date() to timeDate() returns NA.

·         You can now set the entire contents of a timeSeries to one value.

·         The history() and again() functions now work on Windows.

·         The function anyMissing() is now available in the core product. Previously, it was available only in the Missing library.

·         try() now supports nesting calls.

·         The methods [[, [<-, and [[<- are now supported for numericSequence objects.

·         A new argument, align.by, has been added to aggregateSeries 

·         casefold follows locale when you switch cases of letters.

·         A new feature was added in aggregateSeries to include the left endpoint of each bin.

Statistics

·         Addition of multicomp method for lme, multicomp.lme, as part of distributed
S-PLUS.

·         lme function now drops unused levels.

·         density includes the new feature of expanded variety of bandwidth selection rules.

Bugs Fixed in S-PLUS 7

Reliability: Crashes and reference counting errors in some unusual conditions have been resolved, including when calling file() with no arguments, when modifying function objects directly, when calling aggregate or seriesMerge with a zero-row data frame or with factors with many levels, and when calling apply on a matrix with dimnames of the wrong size. Hanging conditions caused by calling the functions cor, lgamma