These
release notes are current as of December 2005. This file contains the following
information:
· Changes to Language Functions
· Supported Platforms and System Requirements
· Contact Information for Feedback
S-PLUS 7 is a major 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.0.6 is a
maintenance update, providing fixes to bugs discovered after the release of
S-PLUS 7. This maintenance update also includes enhancements related to data
import and export, which were implemented in S-PLUS 7.0.5.
NOTE S-PLUS 7.0.5 was a version
of the S-PLUS language engine that shipped only with Insightful Miner 7. It was
not available as an independent patch to S-PLUS. Changes between S-PLUS 7.0.5
and S-PLUS 7.0.6 are ancillary bug fixes to S-PLUS. For more information, see Bugs Fixed in S-PLUS 7.0.5 and 7.0.6.
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:
S-PLUS
7
· Big Data library
· S-Plus Workbench developer tools
S-PLUS
7
· New correlatedData library
· Improvements to timeSeries objects
· Improved GUI responsiveness
· Support for 4GT RAM tuning
· FLEXnet license management system
· New functions and other minor new capabilities
There
are also a number of enhancements to existing functions, and improvements to
quality in several areas.
S-PLUS
7 includes support for the following S-PLUS modules. These modules are
unchanged in S-PLUS 7.0.6.
These
modules require a license to use.
|
Module |
Version |
Platform |
|
|
2.0.4 |
Windows |
|
|
2.0.1 |
Windows, Solaris, Linux 32-bit |
|
|
1.6.2.0b |
Windows, Solaris, Linux 32-bit |
|
S+Wavelets |
2.0.2 |
Windows, Solaris, Linux 32-bit, HP, and AIX |
|
S-PLUS for ArcView GIS Link |
1.1.1 |
Windows |
|
|
2.0.3 |
Windows |
|
|
2.0.3 |
Windows |
|
|
1.5.7 |
Windows, Solaris, Linux 32-bit, HP, AIX |
The
following modules were not changed in S-PLUS 7.0.
· S-PLUS for ArcView GIS Link
·
·
·
S-PLUS 7.0.6 includes bug fixes in S-PLUS
7.0.5, which was included with Insightful Miner 7, and bug fixes since S-PLUS
7.0 was released. For more detailed information, see the section Bugs Fixed in S-PLUS 7.0.5 and 7.0.6 or the file SHOME/help/FIXEDBUG.TXT, included on the product CD.
Support for
reading and writing longer strings
S-PLUS 7.0.6 now supports reading and writing longer strings for
a variety of data types. These improvements include the following:
|
Data Type |
Import
character string length (max)* |
Export
character string length (max) |
|
ASCII |
32K |
32K |
|
Oracle-Direct |
3999 (varchar2) 2000 (nchar) 1000 (nvarchar2) |
< 4000 (varchar2) >= 4000 (CLOB) |
|
Oracle via ODBC* |
1999 (char) 2000 (nchar) 1000 (nvarchar2) |
<= 255 (char) > 255 (long) |
|
Excel |
32K |
32K |
|
Access 2000 |
32K Memo field |
32K Memo field |
|
SQL Server 2000-Direct |
4096 (TXT) 255 (varchar -DRIVER
ISSUE) 255 (nvarchar) 255 (char) 255 (nchar) |
< 8000 (varchar) >= 8000 (text) |
|
SQL Server 2000 - ODBC |
7999 (TXT) 7999 (varchar) 3999 (nvarchar) 7999 (char) 3999 (nchar) |
<= 255 (varchar) > 255 (text) |
*Note the following issues for writing
long strings:
· Oracle-Direct: If you have two or more columns of long strings, either with strings over 1,333 characters, S-PLUS writes empty rows to the database.
· Oracle via ODBC: If you have two or more columns of long strings, either with strings over 255 characters, S-PLUS writes empty rows to the database.
· SQL Server 2000 Direct: If you export data with strings over 255 characters, the string is truncated. The longer the string, the greater the truncation. For example, for strings of length 3999, they are truncated and inserted into the database as 159-character strings. For strings of length 7999, they are truncated and inserted into the database as 63-character strings.
· DB2: Previously, S-PLUS created fixed-length strings when exporting data to a DB2 database; however, this design did not allow for long strings to be exported. Now, when you export data to a DB2 database, S-PLUS creates the columns as varchar, rather than CHAR, to accommodate up to 32,672 characters in a string.
S-PLUS now supports importing and
reading 64-bit SAS files and compressed SAS files.
S-PLUS 7.0.4 includes and bug fixes since
S-PLUS 7.0.3 was released. For more detailed information, see the section Bugs Fixed in S-PLUS 7.0.4 or the file SHOME/FIXEDBUG.TXT, included on the product CD.
S-PLUS 7.0.3 includes and bug fixes since S-PLUS
7 and 7.0.2 were released. For more detailed information, see the section Bugs Fixed in S-PLUS 7.0.3 or the file SHOME/FIXEDBUG.TXT, included on the product CD.
S-PLUS 7.0.2 includes and bug fixes since S-PLUS 7 was released. For more detailed information, see the section Bugs Fixed in S-PLUS 7.0.2 and the file SHOME/FIXEDBUG.TXT, included on the product CD.
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)
· Updated Winjava Library to use JRE 1.4.2
· Improved responsiveness of Windows GUI
· New Model Type: Cox Mixed Effects Models
· New Color Scheme for Graphics Devices
· Higher Quality Graphlet Printing Capability
(
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 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.
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.
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.
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 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.
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.
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.
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.
·
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)
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().
·
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.
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: This must be done in every session
because |
|
|
The old colorscheme is available in
the list then all subsequent calls to |
|
|
Set the |
|
PostScript
device |
You can set the new argument, |
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.
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 labels 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.
For a list of the bugs fixed in this release, see FIXEDBUG.TXT.
One of the
changes made in S-PLUS 7.0.3 introduced the use of the Windows API call GetLongPathName(). When a
firewall is fully enabled, this API call slows down, up to a factor of 10
times, when called with network drive (UNC) paths. This issue can also appear depending on
a router configuration independent of having a firewall enabled. The use of this API call has been
removed in S-PLUS 7.0.4.
The "link" and "var" for the quasi() family are not used properly in bdGlm().The fitted model, and/or the
deviance, does not match the results from glm().
bdGlm fails when creating an S-PLUS list from XML with intercept-only model. glm(plants~1, data=as.bdFrame(guayule))
Incorrect results with "cloglog" link and either the binomial or quasi family.
The contrasts argument is ignored when creating
the model matrix, so the default contrasts are always used.
Using the bdGlm function with a binomial family and the weights argument returns incorrect null.deviance output.
Using the bdGlm function with any family, and with
no intercept fit, returns incorrect null.deviance output.
glm and bdGlm give different answers when family = poisson and link = identity.
cumprod returned
incorrect results with a logical vector. This problem has been corrected.
The
gsub function
dropped vector elements when its input contained empty strings. This problem
has been corrected.
The
coxme function
could fit the wrong model, due to an error in the coxme.varcheck function. This problem has
been corrected.
Previously,
the dump path followed the path of the last GUI file export, if the user
browsed to the last export path. If the user manually provided the GUI export
path, the dump path did not change. This problem has been corrected.
try()/restart() caused a
warning list to be printed for each caught error. This problem has been
corrected.
The
lag argument
in the diff function
handled only explicit numeric values. The argument can now handle numeric
objects.
SBATCH changes
·
SBATCH on Windows interpreted the -work
parameter incorrectly, writing the .Data directory in the wrong
place. This problem has been corrected.
·
SBATCH on UNIX would not run if the
output file did not exist, displaying the error ‘Cannot write into
"filename".’ This problem has been corrected. (UNIX only)
·
The -headless option did not work
with SBATCH, which meant that running batch commands using SBATCH
on UNIX did not produce graphics unless an X-server was running. This problem
has been corrected. (UNIX only)
Arithmetic
operations with bdFactors now can
produce NAs, so it works the same as with small data factors.
In
the ImportFromFile feature,
when the user imported an ascii file as
big data using the user defined delimiter "Tabs (\t) and or spaces ( )”, only the
tab was interpreted as a delimiter. If the file was imported as standard data,
then both tabs and spaces are delimiters. This problem has been corrected.
Calling
grep("[a-zA-Z]",
P8.bd[,"ZCTA5"]) would return indices to elements
that had no alphabet characters in them, because calling grep on a bigdata object started the
indices over at 1 in each
block. This problem has been corrected.
as.bdNumeric("999XX") returns 999. It now works in the same manner
as as.numeric("999XX"), which
returns NA.
When
you use a bdFrame with a bdFactor column for group, the percent plots
did not work in the histogram function. The bars and axes labels were not
scaled correctly. This problem has been corrected.
The
bigdata version of prepanel.qqmathline() failed
with a problem in panel. This
problem has been corrected.
histogram(data=bdFrame,~bdFactor) failed, as
did histogram(data=bdFrame,~bdCharacter). This
problem has been corrected.
The
BATCH Win32 utility loaded the bigdata library by default. It no longer loads
by default.
tapply changes
·
When called with a bigdata object, the tapply
INDICES argument worked only it was a bdFactor. It now
works the same as it does with a small data object, using a numeric or
character vector. (tapply help file says INDICES
arguments are interpreted as categories.)
·
Using tapply with the bigdata library
would fail if INDICES was a list, and table of the INDICES
components contained empty cells. This problem has been corrected; empty cells
are now accepted.
·
Using tapply with a bigdata
object produced an error when the INDICES argument included unused
levels. It would silently return incorrect results. The function now returns a
meaningful error.
Previously,
when you selected Source > Format,
an extra blank line would be added in each braced { } expression. Additional line added
each time Format is selected. This
has been corrected.
Syntax
highlighting used the keyword color for the "in" in min(x), or the "if" in "tarif()". Because it was not
treating “.” as
an alphanumeric character, syntax coloring would display different colors for
different parts of functions (for example, as.numeric would appear with as and numeric in different
colors). Now, the syntax highlighting tags a keyword only if it is a complete word,
and it treats a period as an alphanumeric character. (Windows only)
The
S-PLUS Help menu was unavailable
when the Console View had focus; it
worked when the Editor had focus.
This problem has been corrected.
Submitting
code to run (with the run button)
before the engine is ready (for example, when the bigdata library was loading)
failed with no message. It now displays a meaningful message.
The
Help file for SBATCH was missing. It has been
added, along with a link to BATCH help file.
The
Help file for bd.sql was missing. It has been
added.
S-PLUS
7 for Windows contained the winspj version
of the java.graph help file
in the main splus.chm. This masked
the more detailed java.graph help file
in the winjava library.
To correct this problem, the winspj version
of the java.graph help file
has been removed.
The
hmisc library
contained its own help() function,
which did not work properly with the S-PLUS help files. This problem has been
corrected.
xmlTree, xmlOutputDOM, xmlOutputBuffer, xmlHandler, and xmlEventHandler used R closures. They now
use S frames or lists. This also impacted the use of xmlEventParse and some potential use of xmlTreeParse. (Windows only)
in
xmlDOMApply, the C
code for RecursiveApply has been
corrected. (Windows only)
If
no license was available, S-PLUS would fail with a SIGSEGV error after printing the
no-license error message. The SIGSEGV error no
longer appears; S-PLUS fails gracefully when no license is available.
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
exceptional cases. aggregate can now pass additional arguments
to the aggregating function. matrix and array are now
stricter 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 occurred when attempting to save a file have been eliminated. Also,
several 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
occurred 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.
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 occurring 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))
·
Big Data Library (
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.
Big Data library does not convert variable names on
import: When you import data using the argument bigdata=T,
variables containing characters considered “illegal” by the
standard S language are retained. (That is, while the S language does not
recognize any character other than
a-z, A-Z, 0-9 and period, the Big Data library allows all characters.) When
standard S-PLUS converts input data to a data frame, it modifies any variable
names containing an illegal character, replacing any illegal characters with a
period (“.”) character. For example, if a variable name includes a
space (“a b”) or an underscore (“a_b”), then in
standard S-PLUS, a period replaces the space or underscore (“a.b”).
The Big Data library does not follow this convention; rather, it retains
variable names on import.
To change any variable names to names that the S
language recognizes, use the make.names function, which converts
character strings into legal S-PLUS names. See the Help topic for make.names for more
information.
·
S-Plus Eclipse Workbench (
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.
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. See the Help file for
more information.
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.
matrix and array now prevent creation of matrices
and arrays with illegal dimnames (wrong
number of dimensions of size or dimensions).
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.
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 modeling 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.
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.
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.
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
of the installation CD for information on all other licensing options
(including concurrent users and Terminal Services users) 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. |
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.
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), which should have been e-mailed to you. Enter this LAC when
prompted, and a license key is automatically generated and stored in your SHOME/adm/lic/keys directory by default.
If you do not know where your LAC is located, or if you have other difficulties
fulfilling your license, contact Insightful Technical Support.
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.
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.
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. (
· SBATCH 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.
1. From the Start menu, choose Programs.
2. Choose the S-PLUS 7.0 program group.
3. Choose S-Plus.
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.
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 Help buttons in
dialogs, go to 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, go to the Language
Reference for the Contents, Index, and Search tabs
available there.
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"
We are very interested in receiving
information on possible bugs and usability enhancements from all users in this release.
Please send any feedback to:
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