S-PLUS 2000 Professional Edition for Windows, Release 3 (August 2000) This service release of S-PLUS 2000 Professional Edition addresses Windows 2000 support. S-PLUS 2000 Release 3 differs from Release 2 in that it is fully supported on the Windows 2000 operating system. Although there are no new visible features, several functions have been modified to run properly on all of the four main supported platforms: Windows 2000, Windows 95, Windows 98, and Windows NT 4.0. In addition to Windows 2000 support, this service release addresses a few automation bugs and efficiency considerations reported by our customers over the past six months. Specific changes included in S-PLUS 2000 Release 3 are highlighted below. For a complete list of fixed bugs, see the fixedbug.txt document. By default, options()$object.size is now set to Inf. In previous versions of the S-PLUS Uninstall program, the prompt to remove the local working directory was set to "Yes" by default. This is now set to "No". The performance of the merge function has been significantly improved. The rowsum function now calls a C routine for improved speed and performance. Loading multiple-page trellis graphics from disk is now significantly faster. An option to break line plots when x values decrease has been added. An option to have the History log record OLE automation commands has been added. Errors and warnings from the S-PLUS GUI encountered during execution of an S-PLUS script are now sent to the standard S-PLUS message reporting mechanism. If the GUI is used interactively or via an Axum language script, messages are NOT sent to the S-PLUS message recording mechanism. The export.graph function also has a few significant changes, which are summarized below. Five new arguments have been added to the export.graph function: QFactor - used when saving an image file to "CMP", "JPG", "JPG YUV4", "JPG YUV2", "JPG YUV1", "TIF JPG", "TIF JPG YUV4", "TIF JPG YUV2", "TIF JPG YUV1", and "EXIF JPG" formats. Qfactor is a number that determines the degree of loss in the compression process. The valid range is from 2 to 255, with 2 resulting in perfect quality and 255 resulting in maximum compression. The default value is 2. ColorBits - specifies the color bits value used when saving an image. The default is to use the maximum value supported by the requested format. This parameter is ignored for EMF, EPS, EPS /w/ TIFF, EPS /w/ WMF, and WMF files. See the table below for the ColorBits values supported by each file type. Height - specifies the height of the output image. This parameter accepts any floating point value. The default value of -1 causes the graph page height to be used. Width - specifies the width of the output image. This parameter accepts any floating point value. The default value of -1 causes the graph page width to be used. Units - specifies how to interpret Height and Width values. Recognized values are "Inch" and "CM"; any other input is interpreted as "Inch". The default for this parameter is "Inch". Examples: # Export graph "GS1" to JPEG with YUV 4:4:4 color space using default # Qfactor = 2 and ColorBits = 24 export.graph("c:\\temp\\test2.jpg", Name="GS1", ExportType = "JPG" ) # Export graph "GS1" to grayscale JPEG with YUV 4:1:1 color space # and maximum compression export.graph("c:\\temp\\test2.jpg", Name="GS1", ExportType = "JPG YUV1", QFactor = 255, ColorBits = 8 ) # Export graph "GS1" to BMP using default ColorBits = 32 export.graph("c:\\temp\\test2.bmp", Name="GS1", ExportType = "BMP" ) # Export graph "GS1" to grayscale uncompressed TIF export.graph("c:\\temp\\test2.tif", Name="GS1", ExportType = "TIF", ColorBits = 8 ) # Export graph "GS1" to a 4"x5" Zsoft PCX export.graph("c:\\temp\\test2.tif", Name="GS1", ExportType = "PCX", Height = 4, Width = 5, Units = "Inch" ) The options for the ExportType parameter in export.graph have changed. The table below matches the strings that ExportType accepts with their corresponding file types. The ColorBits values supported by each file type are also given in the table. ExportType Format description ColorBits JPEG & LEAD Compressed "CMP" LEAD Compression Format 8, 24 "JPG" or "JPG YUV4" JPEG File Interchange Format with 8, 24 YUV 4:4:4 color space "JPG YUV2" JPEG File Interchange Format with 8, 24 YUV 4:2:2 color space "JPG YUV1" JPEG File Interchange Format with 8, 24 YUV 4:1:1 color space Compressed TIFF "TIF JPG" or Tagged Image File with JPEG 8, 24 "TIF JPG YUV4" compression and YUV 4:4:4 color space "TIF JPG YUV2" Tagged Image File with JPEG 8, 24 compression and YUV 4:2:2 color space "TIF JPG YUV1" Tagged Image File with JPEG 8, 24 compression and YUV 4:1:1 color space "TIF PACK" Tagged Image File with PackBits 1-8, 16, Compression and RGB color space 24, 32 "TIF PACK CMYK" Tagged Image File with PackBits 24, 32 Compression and CMYK color space "TIF PACK YCC" Tagged Image File with PackBits 24 Compression and color YCbCr space "CCITT" TIFF, compressed using CCITT "CCITT G3 1D" TIFF, compressed using CCITT, group 3, 1 dimension "CCITT G3 2D" TIFF, compressed using CCITT, group 3, 2 dimensions "CCITT G4" TIFF, compressed using CCITT, group 4 TIFF Without Compression "TIF" Tagged Image File Format with no 1-8, 16, compression and with RGB color space 24, 32 "TIF CMYK" Tagged Image File with no compression 24, 32 and with CMYK color space "TIF YCC" Tagged Image File with no compression 24 and with YCbCr color space BMP Formats "BMP" Windows BMP with no compression 1, 4, 8, 16, 24, 32 "BMP RLE" Windows BMP with RLE compression 4, 8 "OS2" OS/2 BMP version 1.x 1,4,8,24 "OS2 2" OS/2 BMP version 2.x 1,4,8,24 Exif Formats "EXIF" Exif file containing a TIFF image, no 24 compression with RGB color space "EXIF YCC" Exif file containing a TIFF image, no 24 compression with YCbCr color space "EXIF JPG" Exif file containing a JPEG compressed 24 image "EXIF 411" Exif 2.0 file containing a JPEG 24 compressed image Other Color Formats "PCX" ZSoft PCX 1,4,8,24 "WMF" Windows Meta File 24 "EMF" Windows Enhanced Meta File 24 "PSD" Adobe Photoshop 3.0 1, 8, 24 "PNG" Portable Network Graphics 1,4,8,24 "TGA" TrueVision TARGA 8,16,24,32 "EPS" Encapsulated PostScript 24 "EPS TIFF" Encapsulated PostScript with TIFF 24 header "EPS WMF" Encapsulated PostScript with WMF header 24 "RAS" Sun Raster 1, 4, 8, 24, 32 "WPG" Word Perfect (raster only) 1, 4, 8 "PCT" MacPict 1,4,8,24 Formats requiring LZW compression to be enabled "TIF LZW" Tagged Image FileFormat with LZW 1-8, 16, compression and RGB color space 24, 32 "TIF LZW CMYK", Tagged Image FileFormat with LZW 24, 32 compression and RGB color space "TIF LZW YCC", Tagged Image FileFormat with LZW 24 compression and RGB color space "GIF" CompuServe GIF 1-8 The following formats support ColorBits = 1 only. 1-Bit FAX Formats "FAX" or "FAX G3 1D" Raw FAX, compressed using CCITT group 3, 1 dimension "FAX G3 2D" Raw FAX, compressed using CCITT group 3, 2 dimensions "FAX G4" Raw FAX, compressed using CCITT group 4 "WFX" or "WFX G3" Winfax, compressed using CCITT group 3, 1 dimension "WFX G4" Winfax, compressed using CCITT group 4 "ICA" or "ICA G3 1D" IOCA, compressed using CCITT group 3, 1 dimension "ICA G3 2D" IOCA, compressed using CCITT group 3, 2 dimensions "ICA G4" IOCA, compressed using CCITT group 4 "ICA RAW" or IOCA, compressed using CCITT group 3, "ICA RAW G3 1D" dimension, without the MO:DCA wrapper "ICA RAW G3 2D" IOCA, compressed using CCITT group 3, 2 dimensions, without the MO:DCA wrapper "ICA RAW G4" IOCA, compressed using CCITT group 4, without the MO:DCA wrapper "CAL" CALS Raster file Other 1-Bit Formats "MAC" MacPaint "MSP" Microsoft Paint "IMG" GEM Image For completeness, the Release Notes for S-PLUS 2000 Professional Release 2 are shown below. S-PLUS 2000 Professional Edition for Windows, Release 2 (October 1999) This service release of S-PLUS 2000 Professional Edition for Windows addresses some problems and concerns identified or corrected since Release 1. The most important fixes, as gauged by calls to our Technical Support group and postings on S-news, are the following: Improvements in how S-PLUS handles two-digit years in dates data. Improvements in files created to maintain S-PLUS databases (sum4*.txt, ___nonfi). Reversion to default of data.frame for imported data objects, rather than data.sheet as in S-PLUS 2000 R1. Inclusion of the NLME 3.1 library from Douglas M. Bates of the University of Wisconsin-Madison and Jose Pinheiro of Lucent Technologies. Updated libraries from Frank Harrell and from Brian Ripley and William Venables. This service pack also includes a new feature: the ability to access your favorite data sets, script files, and graph sheets from a toolbar. Additional information on fixed bugs is available in the file %S_HOME%\fixedbug.txt. REVISIONS TO DATES Dates are treated more consistently in S-PLUS 2000R2. Dates entered into the S-PLUS Data Window are now treated in the same way as dates entered into the S-PLUS engine via the dates() function. In particular, all S-PLUS dates now use the same default origin (1/1/1960) and the same default century cutoff (1930). The first change means that doubles and dates are mapped in the same way no matter how you enter them. In S-PLUS 2000R1 and R1a, if you entered a column of doubles in the Data Window, then converted them to dates, the double values were considered to be Julian dates with an origin of 1/1/1960. At the same time, if you entered double values in a dates column, the doubles were considered to be Julian dates with an origin of 12/30/1899. Now both operations by default use the 1/1/1960 origin. You can change the origin by setting or modifying the S-PLUS chron.origin. For example, to use the Windows standard origin in both the engine and the Data Window, set the chron.origin option as follows: > options(chron.origin=c(month = 12, day = 30, year = 1899) Dates created with the seq.dates() function now display correctly in the Data Window. The second change means that, by default, two-digit years are interpreted as years beginning with "19" if they fall in the range 30-99, and as years beginning in "20" if they fall in the range 00-29. You can change this interpretation by modifying the S-PLUS option time.century. For example, if you want to have two-digit dates between 20 and 99 treated as years beginning with "19", set the time.century option as follows: > options(time.century=1920) To accommodate the time.century option, we have modified the chron() and dates() functions. The earlier versions of these functions are available in the library olddates. To attach these functions for backward compatibility with your existing code, use the following expression: > library(olddates, first=T) For the first time, you can enter dates data into an empty column, and have them displayed correctly; previously, if you entered a value such as 1/1/96 in an empty column, it would be treated as a factor or character, and you'd then have a difficult time converting that factor data into a date. You can also now enter Date&Time and Time data directly. You can enter dates data in a variety of formats, with years expressed as either two- or four-digit dates: mm/dd/yy mm/dd/yyyy m/d/yy m/d/yyyy dd/mm/yy [dd>12] dd/mm/yyyy mon dd, yy mon dd, yyyy dd mon yy dd mon yyyy yy/mm/dd [yy > 12] day-of-week, mon dd, yyyy mon dd, yyyy day-of-week, dd mon yyyy dd mon, yyyy Spaces and hyphens can be used in place of slashes (and vice-versa). NOTE: If you enter TIME data, you must use a colon to separate the hours, minutes, and seconds (H:M:S). Displays of dates use the System Regional Settings from the Windows Control Panel. SUMMARY FILE IMPROVEMENTS Most of the summary file errors in previous releases of S-PLUS 4.x/2000 were caused by an inconsistency between the list of objects in a directory database and the list of objects with summary information in the summary file for that database. The inconsistency could occur in two situations when using the 'where' argument to 'assign()' or 'remove()': 1) if 'where' was a character string that either specified a directory database that was not already attached, or 2) if `where' specified an attached directory database in a way different from how that database was attached, such as a) using a relative path instead of a full path, b) using "/" instead of "\\", or c) using "//machine-name/share" instead of a drive designation). The potential for an inconsistency in these cases has been removed with this release. Note, however, that if 'assign()' or 'remove()' is used by one Axum or S-PLUS session on a directory database that is concurrently attached in a second Axum or S-PLUS session, the second session must execute 'synchronize(n)' (where n is the search list position of the attached database) to avoid subsequent summary file errors. An additional behavior of 'synchronize(n)' is to regenerate (only if necessary) the summary files for database n, which may slow down that operation. REVERSION TO DEFAULT OBJECT TYPE OF data.sheet In S-PLUS 4.x, objects created by or imported into the GUI were by default data frames, that is, objects of class data.frame. In S-PLUS 2000 R1, that default was changed to data.sheet, a new class of object that supports irregular column lengths. This change was poorly documented, and caused many users difficulty. In S-PLUS 2000 R2, the default has been changed to data.frame for better compatibility with previous versions of S-PLUS. You can change this option using the Options > General Settings dialog. On the General page, under Data Options, choose Default Class of either data.sheet or data.frame. NLME 3.1 REVISIONS The NLME 3.1 release contains corrections for several bugs detected in the 3.0 release. The most important bug corrected in the new release refers to the calculation of confidence intervals for variance-covariance parameters, which were larger than they should in the previous release. This new release also contains revised help pages, with several typo corrections, and updated transcripts for the SAS PROC MIXED examples. UPDATED LIBRARIES FROM HARRELL AND FROM VENABLES AND RIPLEY S-PLUS 2000 R2 includes updated user-contributed libraries: the hmisc and design libraries from Frank Harrell, and the class, mass, nnet, and spatial libraries from Brian Ripley and William Venables. To access these libraries, which are installed as part of your S-PLUS 2000 installation, choose File > Load Library and select the desired library from the Library Name listbox (or use library(libname) from the Commands window, where libname is the name of the desired library). To obtain a description of a particular library, choose File > Load Library and select the desired library from the Library Name listbox, then select Description as the Action instead of the default Load Library. From the Commands window, type library(libname, help=T), where libname is the name of the desired library. NEW FEATURE: CUSTOMIZING TOOLBARS WITH DATA SETS, GRAPHS, AND SCRIPTS You can now drag a data set, graph sheet, or script onto a toobar. In each case, a toolbar button is created. What happens when you select the toolbar button depends upon the object type, as follows: Data Sets: If the data set has a file path, selecting the toolbar button opens the file and displays the data in a grid. If no file path exists, selecting the button opens a view of the data. Graph Sheets: For a graph sheet, selecting a button opens the graph file. If no file path exists, you will be prompted to save the graph sheet as a file when you drop the graph onto the toobar. Scripts: For scripts, the script is executed. If no file path exists, you are prompted to save the script to a file when you drag the script to the toolbar. BUGS AND WORKAROUNDS S-PLUS does not correctly check for the presence of an alternate engine DLL, such as that created by static loading. Thus, if you create a new S-PLUS engine DLL, you must move your existing sqpe.dll file to a new location (thus preserving it in case you want to return to it later), then rename your new engine DLL "sqpe.dll". WATCOM COMPILER INFORMATION The S-PLUS 2000 engine was compiled using Watcom 32-bit C/C++ Version 10.5, and dynamic and static loading have been tested with this compiler and with Version 10.6; both are supported. Future versions of S-PLUS will support only DLL loading; dynamic and static loading will no longer be supported. DOCUMENTATION ERRATA S-PLUS 2000 Programmer's Guide Page 505: Code sample at bottom of page doesn't work. The internal automation code has been modified so that it is impossible to create individual automation objects without first registering 'S-PLUS.Application'. The code example can be fixed by changing the line reading Set mySplusGraphSheet = CreateObject("S-PLUS GraphSheet") to Set pApp = CreateObject("S-PLUS.Application") Set mySplusGraphSheet = pApp.CreateObject("GraphSheet") S-PLUS for ArcView GIS User's Guide Page 6: Extension for North American Tech Support is incorrect. The correct phone number for S-PLUS Tech Support is 206-283-8802 x235. The following material was omitted from the S-PLUS 2000 Document Set: For S-PLUS 4.5 users with modules installed, the S-PLUS 2000 Setup should automatically detect the existence of the module files, copy them into your S-PLUS 2000 home directory, and update the Versions file with the necessary information about the installed modules. In some cases, Setup may not detect your S-PLUS 4.5 modules. At other times, Setup finds the modules but cannot update the Versions file, and you may see the following message: Failed to update the S-PLUS Versions file with information about this module You can use the utility program SModWiz.exe, located in the cmd folder of your S-PLUS 2000 installation directory, to solve these problems. In Windows Explorer, navigate to the cmd folder (C:\Program Files\sp2000\cmd, by default), then double-click on SModWiz.exe. The utility guides you through the process of copying your module files into your S-PLUS 2000 directory and will successfully update the Versions file. If you have the 4.5 modules, but they are not currently installed on your system, install them from your original media into the S-PLUS 2000 directory, the run SModWiz.exe to ensure the Versions file is updated correctly. Note: When S-PLUS 2000 Setup searches for previously installed module files, the program may hang at the screen: "Searching for installed components" This usually occurs when the machine you are on is connected to a network. In this case, you should quit the installation, disconnect your computer from the network, and then reinstall S-PLUS 2000. This will prevent Setup from searching the entire network for the previously installed module files. For completeness, the S-PLUS 2000 Release Notes are included below. S-PLUS 2000 is a major upgrade of S-PLUS, built on the core S Version 3 language from Lucent Technologies used in S-PLUS 4.5 and earlier releases of S-PLUS for Windows. S-PLUS 2000 includes the following new or enhanced features: Statistics New, easier-to-use statistics dialogs, including a new Variables group for simple model specification. Enhanced discriminant analysis (homoscedastic (linear), heteroscedastic (quadratic), proportional covariances, equal correlation, common principal components, canonical discriminant function). Enhanced LME/NLME. New, state-of-the-art code, contributed by Doug Bates of the University of Wisconsin-Madison and Jose Pinhiero of Lucent Technologies, has been incorporated. This includes the following improvements: The mixed-effects modeling software has been completely redesigned to emphasize a modular, object-oriented design that makes it easier to incorporate new methods for existing generic functions. Linear and nonlinear multilevel models for data with multiple nested grouping levels are now supported. A new class, called groupedData, can be used to represent data grouped according to one factor or several nested factors. Methods for plotting, summarizing, and fitting groupedData objects are also included. Trellis plots are used extensively for exploring grouped data and checking models fitted to such data. The plot methods for fitted objects include a formula argument that gives them unlimited flexibility for generating diagnostic plots. New classes of correlation structures include ARMA(p,q) models, spatial correlation structures (Gaussian, exponential, etc.) with and without nugget effects, and general correlation with no particular structure. New and redesigned classes of variance functions use arbitrary covariates and grouping of parameters (the previous version used the fitted values as the covariate for the built-in variance functions). Because the correlation structure and the variance function are independently specified, heterogeneous AR1, ARMA, etc. models are naturally handled. A gls function for fitting linear regression models with correlation structures and/or variance functions. That is, lme without random effects (or lm with correlation structures and/or variance functions). A gnls function for fitting nonlinear regression models with correlation structures and/or variance functions. That is, nlme without random effects (or nls with correlation structures and/or variance functions). Dialogs have been added for linear and nonlinear mixed effects, and for generalized linear and nonlinear least squares. The earlier version of the nlme functions is still available as the library nlme2. Use the call library(nlme2, first=T) to use the old mixed-effects modeling code. One major difference between the two versions is that lme no longer has a cluster argument; this is illustrated by the following script: # Old version library(nlme2, first=T) lme(fixed = follicles ~ sin(2*pi*Time) + cos(2*pi*Time), random = ~sin(2*pi*Time) + cos(2*pi*Time), cluster = ~ Mare, data = Ovary) detach(2) # New version # cluster is now specified as part of random effect formula lme(fixed = follicles ~ sin(2*pi*Time) + cos(2*pi*Time), random = ~sin(2*pi*Time) + cos(2*pi*Time)|Mare, data=Ovary) Enhanced survival analysis. This includes a new survival library from Terry Therneau of the Mayo Clinic, along with some enhancements to the accelerated life testing (censorReg) functionality. The enhancements include the following: Penalized Cox models have been added. These include smoothing splines, frailty (random effects), and ridge regression as special cases. User-written penalty functions are supported, so many more possibilities exist. Parametric survival now includes capabilities for frailty models and nonparametric smooth terms. The new function survReg() provides these capabilities. It replaces survreg(), which remains in S-PLUS for backward compatibility. The survReg() function allows for penalized models (same extensions as coxph), user specified distributions, a larger number of residuals and predicted values options, and numerical improvements that finally remove the "singular" errors that people have complained of, justifiably, for several years. The single argument dist in survReg() serves the same purpose as the two arguments link and dist in survreg(). As the default link was log for survreg(), specifying dist="gaussian" would fit a log-gaussian model. To fit such a model with survReg(), specify dist="loggaussian". The following three statements will all fit a log-gaussian model: survreg(Surv(days, event)~voltage, capacitor, dist="gaussian") survreg(Surv(days, event)~voltage, capacitor, dist="gaussian", link="log") survReg(Surv(days, event)~voltage, capacitor, dist="loggaussian") In contrast, survReg() with dist="gaussian" fits a gaussian model, while survreg() with dist="gaussian" fits a log-gaussian model due to the default of link="log". To fit a gaussian model with survreg() you must also specify link="identity". The following are equivalent: survreg(Surv(days, event)~voltage, capacitor, dist="gaussian", link="identity") survReg(Surv(days, event)~voltage, capacitor, dist="gaussian") Rate tables have been updated to include 1990 US data. There are more plotting options for survival curves. Along with the use of subscripting, for example, fit <- survfit(...); plot(fit[1:2],...); lines(fit[3],...) this much improves the flexibility. Dialogs: The 4.0 Parametric Survival dialog has been updated to use survReg(). The 4.5 Parametric Survivial dialog using censorReg() has been moved to Life Testing to reflect its manufacturing orientation. These two dialogs have overlapping but disjoint capabilities, which is why both are included. NA methods New NA method na.exclude(), which behaves in the way na.omit() used to for survreg(). This works for all modeling functions except those in the new nlme library. The functions naresid(), napredict(), and nafitted() are used in the resid(), predict() with no new data, and fitted() methods for modeling functions to add rows of NAs corresponding to the locations of missing value rows in the fitting data. Thus, residuals and fitted values will now have the same length as the original data in the presence of NAs. (This capability is not available for all cases of predictions in tree and GLM models.) Using na.action = na.omit will yield complete backward compatibility for all functions except the survival functions. For consistency, survreg(), survfit(), coxph(), and censorReg() now return rows without NAs when na.action=na.omit. For the same behavior as in previous versions of S-PLUS, use na.action=na.exclude. This change was necessary to achieve backward compatibility for the other modeling functions. The Summary Statistics dialog under the Statistics menu has been split into two pages, one for the data and results specification, the other for requesting specific statistics. The Design submenu under the Statistics menu has three new options: Design Plot, Factor Plot, and Interaction Plot. These correspond, respectively, to the plot.design, plot.factor, and interaction.plot functions. The Regression submenu under the Statistics menu now includes a Probit regression option. This, like logistic and Poisson regression, is a special case of Generalized Linear Models. A new Tree Tools dialog has been added and placed with the Tree Models dialog in a new Tree submenu under the Statistics menu. The Tree Tools dialog gives convenient access to the functionality of browser.tree, burl.tree, hist.tree, identify.tree, rug.tree, snip.tree, and tile.tree. General stats dialogs changes Dependent and Independent variable groups have been added to most Model tabs. The formula builder for survival dialogs has been revised. Data sets created as Saved Results or Predictions are automatically displayed. Data sets created by Data dialogs are automatically displayed. Bootstrap Now works when the statistic is an expression and assign.frame1=T. Gives warning when bootstrap BCa intervals are requested and the estimated value of z0 is unreasonable. Provides faster bootstrapping when the data is a data frame with many rows. No longer converts vector data to a matrix internally (important if the data set was a factor). Checks that statistic has the same length across bootstrap samples. Now works when the statistic returns a matrix without dimnames. Allows greater generality when statistic is an expression. Includes example of getting p-values from a permutation test. The key function Supports plotting on a log scale. Lets pch be a list to support mixing different types of plotting characters (for example, "*" and 1). The bs and ns functions Support prediction and extrapolation. Density The width argument to density() may now be a character string indicating which of 5 bandwidth estimations to use. The new estimation methods are courtesy of Venables and Ripley. The default bandwidth is now 4 times the default bandwidth in previous versions of S-PLUS. Histogram The nclass argument to hist() may now be a character string indicating which of three bin number estimation methods to use. The new estimation methods are courtesy of Venables and Ripley. The default bin estimation method is the same as in previous versions of S-PLUS. Robust LTS regression (ltsreg) By default, ltsreg now uses 10% trimming. Previously it used 50% trimming. This change was made in response to user feedback that the default trimming of 50% was too extreme in most cases. Robust MM regression (lmRobMM) The Robust MM Regression dialog now has a default Resampling Method of "Auto", which uses the sample size and number of variables to determine which resampling method to use. The command line function lmRobMM() is unchanged. Quality control charts Four new chart types are provided: EWMA, MA, MS, and MR. You can now specify multiple control limits in Shewhart charts by providing a vector for nsigmas. You can now create Quality Control charts using the menus and dialogs. Separate dialogs are available for Quality Control Charts for Continuous and Discrete Grouped data and Continuous Ungrouped data. You can now compute process capability. Time series dialogs There are now dialogs for Lag Plot and Spectrum Plot. The ARIMA dialog has been revised. Smoothing dialogs Now create editable graphics by calling the same dialogs as the plot palette. The scale function Allows data frames, allows non-numerical columns, is faster. The set.seed function May now take an old value of .Random.seed as input. The uniroot function Works when the zero of a function is at an endpoint of the interval. Detects singularities. The optimize function Detects singularities. Handles maximization correctly. Data The Data toolbar option for inserting a column has been modified; its ToolTip now shows what type of column is to be inserted, and the dropdown menu of available types has been minimized to show just the dropdown arrow. The Stack and Unstack dialogs under the Data menu have been enhanced. A new dialog, Expand Grid, has been added to the Data menu. The Change Data Type dialog under the Data menu has been enhanced. Greatly enhanced data manipulation capabilities and dialogs. Block operations (copy, move, transpose, clear, remove). Operations on rows and columns (copy, move, transpose, clear, remove, pack, append, stack, unstack). Noncontiguous and conditional sets of rows and columns can be specified. Data Fill, Create Categories, and Subset Builder dialogs. New data.sheet data object. Similar to a data.frame, the data.sheet object type provides increased flexibility. Most importantly, you can have data columns of different lengths stored in a data.sheet. By default, New Data Set creates a data sheet. You can choose to create data frame objects instead by choosing Options/General Settings and setting Data Class to data.frame under Default Data Options. DataTips show column type and column description. Just point the mouse cursor at the column number to see the column type or at the column name to see the column description. Saving, loading, and creating data objects via the File menu. Data frame changes: The data frame code was rewritten to be more efficient and fix miscellaneous bugs. Default variable names are sometimes different. The data.frame function now calls data.frameAux and its methods rather than as.data.frame and its methods. Printing data frames now uses format. The code for creating and subscripting data frames is now faster. Note that you no longer need to write an as.data.frame method when creating a new class of objects, but you may need to write a data.frameAux method. New Object Explorer View an outline of your data objects and your documents in the left pane. Expand and collapse the outline as you do in the Windows Explorer. Edit object properties (such as Data window and Graph Sheet properties) from within the Object Explorer. View the contents of any object in the right pane, along with explanatory information. Add your own folders to the Object Explorer. Add objects to it by filtering or by drag-and-drop. Select data columns from the right pane of the Object Explorer and graph them with the plot palettes. View and manipulate time series objects. Graphics DataTips and labeling for scatter plots. Point your mouse cursor at a data point in a scatter plot. A tip will appear showing the values of your data for that point. Customize the contents of the tip for each plot on the Data to Plot page of the plot's dialog. Use the Label Data Points tool to create a comment with the contents of the tip. Saved graphs (.sgr files) created by S-PLUS 2000 are incompatible with and cannot be read by earlier versions of S-PLUS, including S-PLUS 4.5. New plot types on the 2D plot palette. The first five plot types listed below are completely new to the S-PLUS GUI. The remaining plots have been added to the 2D plot palette for easy accessibility. Combined vertical/horizontal error bar charts. Draw graphs showing errors for both the x and y directions. High-low-open-close plots. Plot financial data showing not only the high and low values for the day, but also a marker showing the open and close values. Alternatively, draw a candlestick plot to show the open-close region. Multiple x-y pairs. Plot two or more pairs of x-y data series on the same plot by selecting the data columns and clicking on a plot button. Nonlinear curve fitting plots. Specify your own model, and the fitted line will be calculated and drawn. Smith Charts. A new plot type most often used by engineers. Vector Plots Polar Plots Power Fit Ln Fit Log 10 Fit Friedman's Supersmooth Horizontal High Density Horizontal Step Plots Horizontal Error Bar Charts Grouped Horizontal Bar Charts New 2D Axis Toolbar Settings and new Insert Graph dialogs let you specify 2D axis types before you create your plot, as well as show you a clear picture of the type of plot you're creating. For example, select three columns of data, then choose Multiple Y axes, then create a scatter plot. Two plots are created, and the second plot is scaled to an automatically created right Y axis. Or, choose Log Y to have the scaling on your Y axis automatically set to Log scaling. Embed data in your Graph Sheet so that it can be saved as a single file. Extract data from a Graph Sheet to link the plots to data. For example, if you've created a graph from the command line, you can later extract the data used within in it and have it put into a data set. Examine the data, edit it, draw other graphs with it, and interactively select data points on the graph. A new option is available to set the graphics mode of graphs produced by statistics dialogs. If Create Editable Graphics is checked under Statistics Dialogs Graphics on the Options page of the Options/Graph dialog, editable graphics will be created. If it is not checked, faster, non-editable graphics will be created. (The default is non-editable graphics; the default is erroneously described as editable in the User'sGuide.) Fonts for traditional graphics can now be specified in the Graph Sheet properties dialog on the Options page. Eight fonts can be specified as Command Fonts. To change the default Command Fonts for new Graph Sheets, specify the fonts you would like, then use Options/Save Sheet as Default. The graphsheet() function has a new font argument. You can specify up to eight fonts to be used by the par(font=..) function. For example, graphsheet(fonts=c("Tahoma", "Courier New", "Symbol")) will create a new graphsheet device, with font 1 set to Tahoma, font 2 set to Courier New, and font 3 set to Symbol. This will override the default Command Fonts for a new Graph Sheet. The graphsheet() function has a new argument to suppress graphics warning messages such as out of bounds messages. To suppress messages, use graphsheet(suppress.graphics.warnings = T). These warnings can be suppressed by default by checking the Suppress Warnings box under Traditional Graphics on the Options page of the Options/Graphs dialog. When the orientation of a Graph Sheet is changed (for example, from Landscape to Portrait) in the Graph Sheet's properties dialog, the objects within the Graph Sheet will now be automatically resized to fit the new page dimensions. If a single factor column is selected and either a bar plot or a pie chart is created interactively (for example, via the plot palette), the number of rows corresponding to each factor value will automatically be calculated and plotted. It is now easy to interactively create a separate line plot for each factor level of a grouping variable. Select two numeric columns, then a factor (grouping) column. When you click on the line plot button on the 2D palette, a separate line plot will automatically be created for each group. Saving and Loading the Workspace Workspace files can be saved and loaded. Each workspace file contains a complete description of the workspace, including sizes and positions of open documents and user-specified paths. New workspace now available from File menu instead of Options menu. Enhanced History Log New option to have a condensed history log, showing quick summaries of your actions. Automation Greatly enhanced automation server capabilities, especially for using C++ and Java to write automation clients for S-PLUS. Enhanced automation client capabilities New automation help capabilities. Generate HTML file containing entire object hierarchy in S-PLUS, including all internal objects and methods and user-defined functions. GUI Customization and Deployment Drill-down capability in Explorer for FunctionInfo objects and for properties makes dialog creation much easier. Interacting with Other Products New S-PLUS component for Mathcad. Improved Speed Start-up speed up to 50% faster (depending on machine). By default, S-PLUS now checks to see whether your system is an Intel Pentium processor, and if so, uses Intel's Math Kernel Library BLAS routines (in SHOME/cmd/mkl_intf.dll). These routines are optimized for Intel Pentiums, and thus significant speed-up should be observed in certain S-PLUS operations (such as matrix multiplication) that call BLAS routines. Significant speed-up of certain operations can be obtained when using a Pentium multi-processor machine. The operations for which S-PLUS can take advantage of the additional processors are those (such as matrix multiplication) in which the BLAS routines of the Intel Math Kernel Library are used. See intelmkl.use and get.processor.count for more information. Using these routines on a non-Intel Pentium processor may cause some problems. It is also possible that the check S-PLUS performs to detect an Intel processor may currently be detecting a Pentium in all cases, even when your system has a non-Intel processor. S-PLUS 2000 includes a few S language functions to allow you to control whether Intel's BLASroutines or S-PLUS's BLAS routines are used: is.intelmkl.inuse() returns a logical indicating whether the BLAS routines used are from Intel's Math Kernel Library (if FALSE, the BLAS routines used are from the S-PLUS engine). intelmkl.use(set = T, number.of.processors = 1, allow.warnings = T) allows you to change which set of BLAS routines are used. (To use the S-PLUS engine BLAS, use set=F.) If Intel's Math Kernel Library BLAS routines are to be used (set=T), number.of.processors allows you to specify how many processors of a multi-processor machine should be used (if not specified, any previous specification remains in effect; the default is 1). intelmkl.processor.count() returns an integer specifying how many processors of a multi-processor machine are used when Intel's Math Kernel Library BLAS routines are to be used. This number should never be larger than the number of processors on the machine being used. WARNING: If you are using a non-Intel processor, Windows may erroneously report to S-PLUS that you are using a Pentium processor and cause S-PLUS to use the Intel Math Kernel Library BLAS routines. If you are using a non-Intel processor and you encounter problems with any S-PLUS operations, try setting the environment variable S_USE_INTELMKL=no on the S-PLUS start-up command line. Message Reporting Message window is now a dockable control bar; can be displayed or hidden from the View menu. Y2K Compliance S-PLUS 2000 for Windows/NT has had complete Y2K test coverage. User-Contributed Libraries S-PLUS now includes as unsupported libraries the class, MASS, nnet, and spatial libraries of Bill Venables and Brian Ripley and the design and hmisc libraries of Frank Harrell . These libraries are included in the library subdirectory and are available from the Load Library dialog. To use Harrell's Design library, you must first attach the hmisc library with the option first=T, then attach the design library, again with option first=T. The following calls to library perform the desired actions: library(hmisc, first=T) library(design, first=T) If you use the addMassMenus to create menus for the MASS library, the menus will remain until removed with removeMassMenus. However, when S-PLUS is restarted the menu items will be grayed out as the library has not been attached. To reenable the menus, run addMassMenus again. Note that if library(mass) is specified in the .First function the menu items will not be grayed out. Documentation A revised and expanded documentation set. Tips of the Day to improve your efficiency. SUPPORTED PLATFORMS S-PLUS 2000 for Windows is supported on the following: Windows 95 and Windows 98 Windows NT 4.0 running on Intel platforms S-PLUS 2000 DOES NOT SUPPORT WIN32S (that is, Windows 3.1x), nor does it support Windows NT 3.51. TUTORIAL LOCATION After installing S-PLUS, the first thing you should do is read the Tutorial in the booklet Getting Started with S-PLUS 2000. This Tutorial describes how to use S-PLUS 2000 effectively. The Tutorial is available in both printed form and as an Online Manual. To access the Tutorial, select the Help/Online Manuals/Getting Started Guide menu item. This will launch Adobe Acrobat Reader and display the guide Getting Started with S-PLUS 2000. The Tutorial is in Chapter 1 of the Getting Started guide. Also of immediate interest is the Visual Demo available through the Help/Visual Demo menu item. CONTACT INFORMATION FOR FEEDBACK North American users enrolled in the S-PLUS Software and Support Subscription Plan may receive technical support by either email or phone: email: support@insightful.com phone: (206) 283-8802 In other countries, contact your local distributor for information on support options. For a list of distributors, see the MathSoft web site: http://www.mathsoft.com/howtocon/internatl.html Current information on S-PLUS 2000 is available from the MathSoft web site at: http://www.mathsoft.com/splus In particular, the S-PLUS for Windows Frequently Asked Questions information is available from: http://www.mathsoft.com/splus/splssupport/splusfaq.htm We are very interested in receiving information on possible bugs or usability enhancements from all users. Please send bug reports to: bugs@insightful.com Or FAX your comments to S-PLUS Quality Assurance at: (206) 283-8691 INSTALLATION INSTRUCTIONS Installation Before You Begin You can safely re-install S-PLUS 2000 Professional Edition for Windows at any time without overwriting your graphs, data frames, S-PLUS programs, or default files. S-PLUS 2000 Professional Edition for Windows may be installed on a single-user computer. You can install S-PLUS 2000 alongside your existing S-PLUS installation by accepting the default installation paths. The S-PLUS Setup program offers a variety of options: Typical Installation Installs most of the S-PLUS files in the selected directory, including the readme file, program files, default settings and configuration files, visual demo files, Excel Wizard, SPSS Wizard, and PowerPoint Wizard files. Recommended for most users. Compact Installation Installs minimum files required by S-PLUS in the target directory you choose, including the readme file, program files, and default settings and configuration files. Custom Installation Installs only selected parts of S-PLUS. Choose whether to install the readme file, program files, default settings and configuration files, visual demo files, PowerPoint Wizard files, Acrobat Reader files, ODBC files, development system files, or setup files. Any files you choose not to install can be installed later by using CUSTOM Installation again. Recommended for advanced users. Important If you attempt to install S-PLUS 2000 in a directory that already contains S-PLUS files, Setup warns you that this may not be the appropriate choice. If you choose Yes to ignore this warning, Setup will overwrite the existing S-PLUS files. You will also be prompted for a working directory. If you specify a directory that already contains an S-PLUS _Prefs directory, a dialog appears informing you that user-interface objects and preferences exist and showing a check box for backing up these objects. Select the check box to backup the files. Installing S-PLUS on Your Computer On Windows 95, 98, or NT 4.0 1 Insert the CD-ROM into the CD-ROM drive. 2 The Master Setup window will appear. 3 If the Master Setup window doesn't appear, click the Start button, then Run, then type x:\setup (where x is the drive letter of the CD-ROM drive). 4 Follow the Setup instructions on the screen. It is a good idea to turn off other applications while installing S-PLUS, in particular virus checkers or screen savers. Un-installing S-PLUS from your Computer To un-install S-PLUS 2000, select the UNINSTALL S-PLUS 2000 icon in the S-PLUS 2000 program group. Starting S-PLUS Options in the S-PLUS Program Group In the S-PLUS program group, you can choose to start the S-PLUS program or the Visual Demo tutorial, view the online Help or the Release Notes (readme file), or un-install S-PLUS. On Windows 95, 98, or NT 4.0 After installing S-PLUS, the S-PLUS 2000 program group will appear as an option under Programs when you click the Start button. To start S-PLUS 1 From the Start menu, choose Programs. 2 Choose the S-PLUS 2000 program group. 3 Choose S-PLUS. To create a desktop shortcut For quick access to S-PLUS, you can create a desktop shortcut. See the Windows online help for more information. 1 Right-click on the desktop and choose New Shortcut. 2 In the Create Shortcut dialog, click the Browse button. 3 Find Splus.exe. Its location may vary depending on where you installed S-PLUS. Double-click on it. 4 Click Next in the Create Shortcut dialog. You will be prompted to name the shortcut "Splus.exe". If you wish, change this to "S-PLUS 2000" or a name of your choice. 5 Click Finish. You can now access S-PLUS by double-clicking on this desktop icon. ODBC Open Database Connectivity (ODBC) provides a standard mechanism to import and export data from and to a wide variety of commercial databases and applications. The installation CD-ROM also includes a directory of ODBC components. To install ODBC, use the CUSTOM Install Option from the S-PLUS setup and select the Microsoft ODBC Files component for installation. This will install the ODBC Driver Manager and a variety of database drivers, known as the Microsoft Data Access Pack on Windows 95, 98, and Windows NT systems. Note that in order to install ODBC you must first shut down any applications that may be using DLL's installed by ODBC, such as Microsoft Office. NOTES These notes detail some characteristics of this and previous versions. Note that we have flagged some problems that were not resolved in time for this release. Our intent is to continue to resolve both known and newly discovered problems rapidly and to make improvements available to users through regular service releases. If a data set is attached within a function but not detached, as for example when you encounter a fatal error within a function before the call to detach() takes place, the S-PLUS interface is unable to locate objects in the engine, including functions that are used by the menus and dialogs. To correct the problem, exit S-PLUS and delete the files __sum4*.* in your _Data directory. They are automatically regenerated when you re-enter S-PLUS. Using dialog rollback for legend items may cause S-PLUS to hang. For information on the availability of service releases, see the MathSoft web page at: http://www.mathsoft.com/splus/splssupport A list of known bugs fixed since the previous release can be found in the file %S_HOME%\fixedbug.txt