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.htm

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 and mclust with certain arguments have also been resolved. S-PLUS is now more robust to system environment limitations, such as lack of temp file space and lack of file handles (it now uses far fewer).

Performance: Reading text files is now much faster, thanks to code optimization and changes in how S-PLUS scans the file for column types. Importing from SAS, SPSS and Oracle is also faster in many cases. Writing data to network drives has been optimized. Many functions (too numerous to list) have had their S code optimized to use more efficient idioms, and others such as mean() and median() have had their internal implementations optimized for greater efficiency

S Language: Several fixes have been made to timeSeries methods to correctly handle time zone issues and multiple observations on the same date, and timeSeq now correctly handles some execptional cases. aggregate can now pass additional arguments to the aggregating function. matrix and array are now more strict when checking validity of dimnames. Problems reported with browser() have been resolved.

Statistics: Fixes were made to bugs in modeling functions which prevented them returning results when given data sets with unexpected patterns of missing data or missing factor levels; the functions fixed include lme, nlme, gnls, survexp, acf, factanal, loess, fac.design, emCgm, daCgm, AIC (for lm objects when na.action="exclude") and proj (for aov objects). Some modeling functions now return computations absent in previous releases, including glm (which now returns prior.weight for a null model) and print.arima (which now prints the model and coefficients).

Accuracy: Corrections have been made to the results of certain functions that could give inaccurate results for certain arguments. These include glm (corrected standard errors when family=binomial and response specified as a vector of proportions), qt, qf and qbeta for some extreme arguments, t.test (correctly use pooled variance when appropriate), and ks.gof (for very long x and y arguments).

Working with Data Sources: Importing and exporting from ODBC sources is now more reliable, especially when using SQL queries. importData is now more careful in its handling of time formats, field delimiters, and user-specified starting rows.

Integration: Many improvements have been made to the CONNECT/Java, CONNECT/C++ APIs and Automation that allow S-PLUS to be called from or embedded in other applications, to prevent crashes and to allow data to be passed back and forth reliably. Improvements have also been made to the batch interface, to better support command echoing and logging.

Graphical User Interface: The Windows GUI has been improved in several areas, to prevent hanging or crashes when attempting to import from a data base with a very long SQL command, or attempting to plot a data set with no column names. Cutting and pasting S-PLUS graphics is now more reliable. Several dialog boxes (including Anova, Robust LM, Discriminant Analysis, Continuous Grouped QC, Loess, Restructure, Copy Column, Copy Row, Import/Export from Database) now work correctly when certain options are specified. Improvements have been made to the display of interactive graphics, especially in handling of tick marks and trellis strips. Inappropriate "Access Denied" and "Cannot Write File" errors that occured when attempting to save a file have been eliminated. Also, several problems problems caused by a corrupted .Prefs file (such as the infamous red-background bug) have been fixed.

Command-Line Graphics: Hanging problems with some command-line graphics functions (such as plot) that occured when passed extremely large values have been resolved. Plotting multiple timeSeries objects is now more reliable, and the xlim and ylim arguments are now correctly handled.

For a complete list of bugs fixed in this release, please refer to FIXEDBUG.TXT.

Known Issues in S-PLUS 7

McAfee VirusScan slowdown: Virus scanning software such as McAfee can easily slow down S-Plus, whether S-Plus is run directly or from an S-Plus node within Insightful Miner. With System Scan enabled (the default), each time S-Plus reads or writes to a file in its .Data directory, McAfee scans that file for viruses. How much S-Plus is slowed depends on the number and types of processes S-Plus is using at that time.

Script window output misdirected: Switching script windows while computations are taking place can cause script output to show up in the wrong window. If you run a script in one window, and then switch to another script window, the output from the first script appears in the second window.

Appearance of java controls in S-PLUS Windows GUI: When you display the java.graph window in the S-PLUS Windows GUI, it is not added to the list of displayed windows on the Window menu. Also, it always appears on top of the Commands window. (In Enterprise Developer, this behavior is also true of the Big Data Viewer.)

Windows Firewall warning when calling java.graph(): Users who have the Windows Firewall included in XP Service Pack 2, or a similar software-based firewall enabled on their system, can experience a security warning when calling java.graph() for the first time. This is expected behavior. You can choose "Unblock" safely to prevent it from occuring in the future.

Explicitly naming a function with lapply, sapply, and so on. When FUN is a generic function, lapply and sapply will sometimes not find the proper function when you call lapply(X,FUN). It works if you use lapply(X,function(x)FUN(x)). This applies to any function that takes another function as an argument, not just to lapply and sapply. The following is an example using the recommended workaround:

sapply( as.bdFrame(fuel.frame)[,-5], function(x) floor(x))

Enterprise Developer Known Issues

·         Big Data Library (Enterprise Developer only).

bd.data.viewer viewing limitation: bd.data.viewer does not view bdTimeSeries objects.

bdFrame(matrix) is slower than as.bdFrame(matrix): workaround is to use as.bdFrame(matrix) if performance is an issue.

Big Data glm models: A list of the currently known issues:

·         The gamma, inverse.gaussian, and user-defined families are not supported.

·         offset in a formula is not supported.

·         The following na.actions are supported: na.omit, na.exclude, and na.fail.

·         S-Plus Eclipse Workbench (Enterprise Developer only)

Color scheme in Eclipse: In Eclipse, the color setting dialog box does not include any color schemes. This means when you call java.graph from within the S-PLUS Workbench, the color scheme settings are ignored.

Hidden separate windows: When you launch a graph window from the S-Plus Eclipse Workbench, it is launched as a separate window application, and therefore can be hidden by the Workbench window.

Changes to Language Functions

Changes to is.nan(x), is.infinite(x), is.finite(x), and is.number(x)

is.nan(x) and is.infinite(x) now return matrices if x is a matrix. This matches the behavior of is.na(x).

is.finite(x) and is.number(x) now return meaningful answers if x is a data frame, rather than just returning F for every element.

sample() is now generic. There is a data frame method that samples rows rather than columns. There are methods for series objects and bigdata objects; the bdFrame method also samples rows.

There are new arguments:

n                      sample from 1:n (this avoids ambiguity)

minimal          This does two things:

1.       Uses sampling "with minimal replacement" (with size > n).

2.       Uses different algorithms, which are faster and give correct results when sampling without replacement with unequal probabilities.

order              If F, then output does not have to be randomly sorted (this helps speed, especially for Big Data objects). For series objects, order=F is the default, giving output in time order.

bigdata            If T and sampling from 1:n, return a Big Data object (Enterprise Developer only).

There is a new function rsample which does the core calculations for some sample() methods, and may be called directly:

rsample (n, (other arguments like sample))

Improvements to segments and arrows

segments and arrows have a new argument (subset) to draw only a specified subset of specified segments or arrows.

segments has a new optional argument (zero) to prevent drawing zero-length segments.

Improvements to density

density has new arguments weights and freq (frequencies)

Changes to matrix and array

matrix and array now prevent creation of matrices and arrays with illegal dimnames (wrong number of dimensions of size or dimensions).

Improvements to predict

The predict method is now available for a small data arima.mle model or arima data objects (instead of arima.forecast). predict.arima standardizes arima.forecast, especially with the new time series objects.

Changes to sum

sum (a single-column data frame, where the column is logical) now works correctly; similarly for other Summary functions.

sum (a data frame containing character and factor columns, na.rm=T) now omits those columns; similarly for other Summary functions.

Improvements to Trellis graphics (Enterprise Developer only)

Many of the trellis graphics functions now accept a big data object (class bdFrame) as the data argument. Big data plots look a bit different than the plots made from the equivalent data.frame: plotting very large datasets results in a bounded amount of "ink" on the plot.

For all trellis graphics functions with data="bdFrame", if you give a numeric variable on the right side of the vertical bar, it is converted to a shingle using equal.count(x). You can use the shingle.fun and shingle.args arguments to override this behavior. You cannot use equal.count() explicitly in the formula.

To use splom() with data="bdFrame", you must use a different syntax for the formula than you use with data.frames. The syntax resembles that for modelling functions. ~. means to plot all columns, ~.-Col2 means to plot all but the one called "Col2", and ~.|GroupVar means to split the data by the values in GroupVar and for each subset plot all the variables except GroupVar.

Changes to importData and exportData

Important change in behavior: importData argument default changed: separateDelimiters=T

Warning: Code that calls importData to read ASCII test files without specifying the separateDelimiters argument may read different values. The importData argument separateDelimiters specifies how repeated consecutive delimiter characters are treated when reading ASCII text files. If separateDelimiters=T, repeated delimiters indicate columns with missing values. For example, reading a line "1,,2" with a comma as the delimiter reads three values, with the middle one as a missing value. If separateDelimiters=F, repeated delimiters are treated as one delimiter. This is most often used to treat multiple blank spaces as a single delimiter. With this change in the default, specify separateDelimiters=F when reading files with blanks as the delimiter.

In previous versions of S-Plus, the handling of separateDelimiters when this argument was not specified was confusing. If the argument is not specified, it would be F, unless the file name had an extension of "csv", in which case it was T.

Now, the default is simply specified as separateDelimiters=T, without regard for the file name.

Import change in behavior: importData has a new argument: scanLines=256. Default value of 256 lines may not scan an entire ASCII text file to determine column types and sizes.

Warning: When importData reads an ASCII text file, it needs to scan through some of the file first, to determine the number of data columns, the column types, and the maximum sizes of strings. In an early version of S-Plus, importData would scan through the first 256 lines to determine this information. This could cause problems if the first few rows contained different types of data than later rows. For example, suppose a particular column in a file only contains integers for the first thousand rows, and then contains arbitrary strings. After scanning the first 256 rows, the column type would be detected as numeric, and imported that way. The latter values that could not be parsed as numbers are read as NA values. To fix this problem, the behavior was changed to scan through the entire file first to determine the column types. This is the safest approach, at the cost of requiring an additional scan of the entire file, slowing down importData.

In this release of S-Plus, importData has a new argument scanLines, specifying the number of lines that are scanned from an ASCII input file before performing the import to determine the column name and types and widths. The default value is scanLines=256, to speed up importData for large data files. This should work fine with most ASCII text files. To be completely sure of handling cases where scanning the first 256 rows is not enough, importData should be called with scanLines=-1 specified, which means to scan the entire file first.

New feature: importData has a new argument: bigdata=F. (Enterprise Developer only)

If bigdata=F (the default), importData returns a data.frame, as in previous versions. If bigdata=T, importData reads the data as a Big Data object, returning a bdFrame. exportData does not need a corresponding argument: It works whether its data argument is a data.frame or a Big Data object.

New feature: importData has a new argument: maxLineWidth=0.

This argument is an integer giving the maximum line width expected when reading ASCII text files. If a line is read that is longer than this value, an error is signaled. The default of 0, or any number less than 32768 is treated as 32768.

New feature: importData has a new argument: na.string="NA".

This argument is a character string that is read as a missing value when reading an ASCII text file. No matter what value is specified for this argument, an empty string value is always read as a missing value.

New feature: exportData has a new argument: na.string="".

This argument is a character string that is written to an ASCII text file to represent a missing value.

Change: Default options("time.in.format") changed

The default value of options("time.in.format") has been changed from

"[%m[/][.]%d[/][,]%y] [%H[:%M[:%S[.%N]]][%p][[(]%3Z[)]]]"

to

"%m[/][.]%d[/][,]%y [%H[:%M[:%S[.%N]]][%p][[(]%3Z[)]]]"

This value is used by default when parsing strings as dates and times in the timeDate function, and when importing ASCII files with importData. The old value caused some problems in importData, where a column of digits could be incorrectly interpreted as a timeDate. With the new default value, a timeDate string must start with a month, day and year, so it is much less likely to be interpreted incorrectly.

As a result of this change, the default format no longer parses strings containing a time without a date, such as "1:45pm".  If you must parse strings such as this, you can change the options value, or you can specify it as the in.format argument to timeDate, or the time.in.format argument to importData.

New feature: importData has a new argument: colTypes=character(0).

This argument is a character vector of column types to use for the imported columns (after drop/keep). The following values are supported: "numeric", "character", "factor", and "timeDate". Any other values leave the corresponding column unchanged. Therefore, to read the second imported column as a numeric column, one could specify colTypes=c("", "numeric"). Columns whose types are specified as "character" or "factor" will be converted to the specified type, overriding the value of the stringsAsFactors argument for that column.

For the most control when importing a column, one should give colTypes with "character" specified for the column, and explicitly manipulate and convert the character values.

Change: openData arguments updated to conform to importData and exportData.

The openData function has the following new arguments that were added to importData and exportData:

scanLines = 256
maxLineWidth = 0
na.string = if(openType=="read") "NA" else ""
colTypes = character(0)

In addition, openData has several new arguments that were previously available in importData and exportData:

separateDelimiters = T
time.format = ""

The time.format argument acts like the importData time.in.format argument when reading data, and the exportData time.out.format argument when writing data.

Supported Platforms and System Requirements

S-PLUS 7 release for Windows is supported on the following platforms:

·         Windows 2000

·         Windows XP Home Edition

·         Windows XP Professional Edition

·         Windows 2003 Server running on Intel platforms

The minimum recommended system configuration is Pentium III with 512MB of RAM. You must have at least 450MB of free disk space for the typical installation (and, if not installing on Drive C:\, an additional 50MB free disk space on Drive C:\ is required for the installation process).

Do NOT install this release over any existing version of S-Plus. Instead, designate a clean installation directory for S-PLUS 7, and proceed with the Setup program as described below.

Installing S-Plus

The instructions in this section apply to all single-user versions of S-PLUS 7. Consult the Installation and Administration Guide (admin.pdf) in the top-level directory on the installation CD for information on all other licensing options (including concurrent and Terminal Services) or general information regarding license key generation and management.

You must have full administrative privileges to install S-Plus. This is a requirement because the installation program must write to both the C:\WINNT\System folder and the registry, which is possible only if you have the correct privileges.

The S-Plus Setup program offers a variety of options:

Complete

Installs all of the S-Plus files in the selected directory, including the release notes (this document), program files, online help, sample files, development support files, and supported libraries.

Recommended for most users.

Minimal

 

Installs minimum files required by S-Plus in the target directory you choose, including the release notes (this document) and the program files.

Custom

Installs only selected parts of S-Plus. Choose whether to install the release notes (this document), program files, online help, sample files, development support files, and supported libraries.

Any files you choose not to install can be installed later by selecting the icon for Add/Remove Programs in the Control Panel. See below for more details.

Recommended for advanced users.

Installing S-Plus from the CD-ROM

1.       Insert the CD into the CD-ROM drive.

2.       If your system has CD-ROM AutoPlay enabled, the S-PLUS 7 Setup program starts automatically. Otherwise, click the Start button, then Run, then type x:\setup (where x is the drive letter of the CD-ROM). Alternatively, double-click the setup.exe file in the CD-ROM drive of Windows Explorer.

3.       The S-PLUS 7 Setup window appears.

4.       Follow the Setup instructions on the screen. For most installations, the default settings are recommended. It is recommended that you close or disable other applications while installing S-PLUS 7, in particular virus checkers and screen savers.

5.       During installation, you are prompted for your S-PLUS 7 serial number.

All editions of S-PLUS 7 (including desktop) are now licensed managed by FLEXnet, and require a license key. If you are a desktop user and try to start S-PLUS without a license key, a wizard is automatically invoked, prompting you for your license authorization code (LAC). Enter this LAC (if you have it) when prompted, and a license key is automatically generated (if you have an Internet connection) and stored in your SHOME/adm/lic/keys directory by default. If you don’t know where your LAC is located, contact Technical Support.

Adding and Removing Components of S-Plus

To add or remove parts of S-PLUS 7 from your system, select the Add/Remove Programs icon in the Control Panel. Choose S-PLUS 7 from the list of installed programs, and then click the Change/Remove button. Once in the S-PLUS 7 Setup program, select the Modify option. Use the tree of components provided to add (select) or remove (clear) parts of S-PLUS 7.

Uninstalling S-Plus from Your Computer

To uninstall S-PLUS 7, select the Add/Remove Programs icon in the Control Panel. Choose S-PLUS 7 from the list of installed programs, and then click the Change/Remove button. Once in the S-PLUS 7 Setup program, select the Remove option.

Running S-Plus

After installing S-PLUS 7, the S-PLUS 7 program group appears as an option under Programs when you click the Start button. The S-Plus program group contains the following options:

·         S-Plus Console starts the command-line application only.

·         S-Plus Workbench starts the S-Plus plug-in for the Eclipse IDE. (Enterprise Developer only)

·         S-Plus BATCH starts a non-interactive session of S-Plus.

·         S-Plus starts the full GUI application.

·         Wizard for License Manager starts the wizard that prompts you for a license authorization code. This generates a license key, which is automatically installed, and allows you to run S-Plus.

Starting S-Plus with the Full Graphical User Interface

1.      From the Start menu, choose Programs.

2.      Choose the S-PLUS 7.0 program group.

3.      Choose S-Plus.

Starting S-Plus as a Console Application Without the GUI

1.      From the Start menu, choose Programs.

2.      Choose the S-PLUS 7.0 program group.

3.      Choose S-Plus Console.

See the online Installation and Administration Guide (admin.pdf) in the top-level directory on the installation CD for more information on installation and license key generation.

Getting Help in S-Plus

S-Plus offers an online HTML Help system to make learning and using S-Plus easier. Under the Help menu, you will find help on using the S-Plus graphical user interface. In addition, an extensive Language Reference provides detailed help on each function in the S-Plus language. You can also access the Language Reference through the Commands window by typing help() at the S-Plus prompt. Context-sensitive help is available by clicking the Help buttons in dialogs or the context-sensitive Help button on toolbars, or pressing the F1 key while S-Plus is active.

In S-PLUS 7, the help files for GUI and command line functions are completely separate. To access all of the GUI help files, select Help > Available Help > S-Plus Help; to access all of the command-line help files, select Help > Available Help > Language Reference. If you ask for help primarily by clicking on Help buttons in dialogs, you'll want to access S-Plus Help on a regular basis for its Contents, Index, and Search tabs. Likewise, if you ask for help primarily through the help or ? functions, you'll want to access the Language Reference on a regular basis for the Contents, Index, and Search tabs available there.

Compilers/Linkers

S-PLUS 7 is built with Microsoft VC++6.0 and Compaq/DEC FORTRAN 6.0. All samples shipped with S-PLUS 7 have been tested with VC++6.0 and Compaq/DEC FORTRAN 6.0. If you use Microsoft VC++6.0 and Compaq/DEC Fortran 6.0 in your projects that link to S-Plus, use the import libraries in SHOME\lib. For example, sqpe.lib is the import library for sqpe.dll containing the core S-Plus interpreter, and sconnect.lib is the import library for sconnect.dll containing the CONNECT/C++ class library.

Previous builds of S-Plus 6 for Win32 used Visual Studio 6.0 Service Pack 3 to build the engine, GUI, and all samples and utilities shipped with the program. To fix some issues in MFC (the Microsoft Foundation Classes) that S-Plus is based on, we updated the compiler to Service Pack 5. If you have built any C/C++ or Fortran applications using CONNECT/C++ or have modified one of the sample applications for your own purposes, you should install the Visual Studio 6.0 Service Pack 5 update, and recompile and relink these applications to ensure there are no runtime problems related to changes that may have occurred in shared *.dll files.

File input and output is fully supported in C code called from S-Plus, but input and output directed to the standard streams STDIN, STDOUT, and STDERR requires special handling. This special handling is provided by the header file newredef.h, which is included in S.h and sconnect.h. If you need to disable this behavior, define NO_NEWIO before S.h or sconnect.h. For example:

#define NO_NEWIO
 
 
#include "S.h"

Contact Information For Feedback

We are very interested in receiving information on possible bugs and usability enhancements from all users in this release. Please send any feedback to:

bugs@insightful.com

General information about this release of S-PLUS is available at:

www.insightful.com/support/splus70win

The list of S-Plus Frequently Asked Questions is available from:

http://www.insightful.com/insightful_faq/search.htm