Bugs fixed in S-PLUS 2000 Professional Release 3: WINDOWS 2000 ISSUES The objdiff function now works correctly on Windows 2000. File extensions for graphsheets and scripts are now displayed and saved in the Save As dialog on Windows 2000. INSTALLATION AND STARTUP 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 mechanisms S-PLUS uses to search for a valid S_HOME directory during startup are improved. In previous versions, the value of S_HOME in both the system registry and the environment settings had precedence over a value set from the command line (i.e., the Properties dialog of the S-PLUS shortcut icon). If S_HOME is defined in the registry or in the environment, a command line definition is no longer ignored. The mechanisms S-PLUS uses to search for S_HOME and S_PROJ directories during startup now keep track of valid paths they find. This allows S-PLUS to write paths to the registry, so that you are not prompted to enter new directories the next time you open S-PLUS. Two new environment variables for disabling startup dialogs have been added. The /NOSTARTUPDLGS parameter disables all dialogs related to S_PROJ, and the /NOSTARTUPDLGSATALL parameter disables all dialogs related to both S_PROJ and S_HOME. If /NOSTARTUPDLGSATALL is set and S_HOME cannot be validated during startup, S-PLUS shuts down silently. A new registry entry has been added that allows you to define environment variables that are needed during startup via automation. AUTOMATION The OLE support functions, including create.ole.object, now account for the changes between daylight savings time and standard time. When calling S-PLUS via Visual Basic Automation, character string data in arrays is now sent correctly. When calling S-PLUS via Visual Basic Automation, character string data sent to Microsoft Excel no longer results in an Application Error. If you open a graph sheet in a minimized S-PLUS (using automation), the graph sheet itself is no longer automatically minimized. Creating a condition plot via automation, then increasing the number of panels, no longer crashes S-PLUS. GRAPHICS If you create a trellis plot, then change the conditioning variable type from numeric to factor, S-PLUS no longer runs forever. If data set is embedded in a conditioning plot, column names are now used correctly to create panel names. Graphs now update when the Type property in the Conditioning Columns group of the Multipanel page is changed. Modifying the current page property no longer results in a problem with recursive updating. Plots made with Log Axes (base 10) no longer arbitrarily plot points for which log is undefined. Extracting data from an embedded graphsheet no longer loses additional conditioning variables. Histograms conditioned on two factor variables now plot correctly. STATISTICS Although 95% confidence intervals are the default for a Linear Regression from the GUI, two-sided 90% confidence limits were returned in previous S-PLUS versions. The default 95% confidence intervals are now computed. The GUI calculation of skewness now returns a signed value, instead of a strictly positive value. The predict.discrim function now works properly with the 'newdata' argument, when the formula used to create the discrim.object includes the period syntax: ~ . MISC. PROGRAMMING The cut.dates function now gives sensible output when the 'breaks' argument is set to "months" or "years", and the 'x' argument contains years of the form 20xx. The rowsum function now calls a C routine for improved speed and performance. Bugs fixed in S-PLUS 2000 R2 fall into the following broad categories: S-PLUS Database Dates Graphics Data Manipulation Import/Export Object Explorer/Workspace Statistics S-PLUS DATABASE The "Error: Unable to create summary in summary file" should now occur much less frequently.Many of the conditions that could lead to that error have now been corrected. Running 'For()' in S-PLUS 4.x/2000 for Windows often led to spurious summary file warning messages: "Unable to create summary file..._Data/_sum4.txt in: assign(".Steps", steps,....)." The cause of the warnings has been found and corrected. For() did not work if customers install S-PLUS for Windows into a directory with spaces in it(for example: 'Program Files'!) It fails with the error message: "Errors occurred in subprocess -- results are wrong or incomplete in:..". The underlying problem, that For() did not understand SHOME environment variables with embedded spaces, has been corrected. Objects copied from one _Data directory to another using 'objcopy()' didn't always show up in a call to 'objects()' that looked at the target directory. S-PLUS did not always detect that a directory database was already attached, and thus did not always update its internal list of objects for that database. This has now been fixed. If you attached more than one database (not necessarily a dataframe/object) in a function (or top-level expression) that resulted in an error (in the GUI only), the following error message appeared when you detached a dataframe: "Error in UseMethod("assign", where): No specific or default method found(Dumped)." Once this occurred, detaching any database caused a GPF. If you changed the units in a Graph Sheet to mm, then saved graph properties as default, your next graph sheet would correctly default to mm, but a 2D plot created in the new Graph Sheet would have overly large tickmarks because they did not take into account the new default units. A variety of similar problems relating to saving mm units as default have also been corrected. On exiting Splus, the __init and __prev directories are now removed from the directory containing database 1 after the Commit Changes dialog has executed. The Commit Changes dialog was giving objects modified in previous sessions, and it kept growing and growing, and when you attempted to restore an object with an earlier object, you often got one weeks or months out of date. DATES Dates data can now be entered consistently using either the Data Window or the Commands window with the dates() function. Both the default origin for Julian dates and the default century cutoff have been set consistently for both methods. When seq.dates() was used, it created a vector with right dates in engine, but the same vector was 60 years off in GUI. For example, > DateList <- seq.dates("1/31/1990", "12/31/1999", by = "months") If you opened this in the Data Window, it would begin in 1930. The seq.dates() result now displays correctly in the Data Window. GRAPHICS In S-PLUS 2000, the colors in the "Color Scale Legend" do not match with colors in the plot. If you opened a data set in the Data Window, selected 3 columns, selected "Color" from the 2D Plots palette, then clicked on "Color Scale Legend" button on Standard toolbar, the points were all shades of blue, while the legend displayed other colors. The colors now match the legend. The Y Axis range on a Smoothing Spline plot is now calculated correctly and the Spline plot does plot correctly when the X Axis Scaling is set to Log. The 'NLS Fit' plot type available in the Axum 6.0/Splus-2000 GUI now works correctly. The fitted line is now drawn onto the Graph Sheet. A problem with polar plots not displaying as circles in .eps files has been corrected. Axis labels using year series are now calculated correctly when incremented by values less than -36. The bigger the increment value you use, the more apparent the calculation problem appears. This problem also occurred in the Color Scale Legend labels. When the X axis is Date data, setting the Tick Range for First Tick and Last Tick to Axis now work and correct tick marks are set at axis. Specifying the number of intervals for date data axes now gives the correct number of intervals; previously, you saw one interval less than was specified. Using a strip label of "Column of Labels" previously worked inconsistently. This now works consistently. In Trellis plots, the conditioning variables were not displaying correctly in the panels. They now correctly display as "Names and Values". A GPF no longer occurs when a single row number is entered in the subset row field for QQ plot. Pressing F9 after creating a graph was causing changes to the plot and ticks. This has been fixed so that F9 redraws the plot correctly. Multiple filled contour plots on the same graphsheet now print correctly if "display lines" is off. The printed graphsheet was omitting some of the plots. Contour plots are now plotted correctly when they are projected on the XZ or YZ planes. After creating a boxplot, using the Data To Plot dialog to select a second x column to produce side by side boxplots now works correctly. Creating a QQ Normal with Line plot, then dragging a variable to create a Trellis plot was producing a plot with no lines in the panels. This has been corrected. If no printers are installed on the computer, the command graphsheet() (or any engine command that calls graphsheet) now results in a graph with the correct orientation as specified in the settings. Editing the y axis label of an embedded graph in another application was causing the x axis labels to shift to the left hand side of the graph until the edit mode was deactivated. The x axis labels now stay in place. Attempting to export to GIF resulted in zero-length files. In most cases, this was caused by the omission of two DLL's from the CMD directory (HSIIGIF.DLL and HSIOGIF.DLL). These DLL's are included in release 2, but zero-length files may still result from sufficiently complex graphs. If this occurs in release 2, contact MathSoft Technical Support. When editing the y-axis label of an embedded graph in Mathcad or other application, the x-axis label shifted to the left hand side of the graph until you exited edit mode. In creating 2D and 3D graphs, no warning message was generated if non-existent column was specified. DATA MANIPULATION When a logical column was inserted, only the value of T was displayed. The correct values are now displayed. When Packing Columns from a data sheet, the relationship of the row names with the correct row is now maintained. When binning from the Create Categories dialog, binning was being done on the log scale. The bins now correctly correspond to the numeric values in the source columns. When Count was selected from the Create Categories dialog, the minimum value in the source column was being represented in the target column as NA. The correct value now appears in the target column. Using the Data Unstack dialog, if an object with the name specified in the To Data Set field did not already exist, an object with a default DS name (e.g. "DS1") was being created along with the specified data set. The data set with the default name was the one displayed. This has been fixed so that only the object with the specified name is created and displayed. In the Data Unstack dialog, the Group Column in the Row Grouping group is now correctly updated when the From Data Set field is changed. The following dialogs were missing as an option in the dropdown list of the Columns field: Pack Columns, Remove Columns, Clear Columns, Remove Block, Clear Block. is now the default for these dialogs. ts.union no longer fails when given an its constructed from a matrix with a single column. In the Data Window, using Copy and Paste on a numeric column retained only the display precision. The text sent to the clipboard now uses full precision: either "%.15g" or "%.6g". Exporting to ASCII did not retain the full precision. The exported text now uses full precision: either "%.15g" or "%.6g". IMPORT/EXPORT Importing Excel files with formulas that create logical and char values caused error "Out of memory or not enough memory for what you are trying to do...." This was corrected by setting TextAsFactors to Never for these files. The extension on SAS Transport Files that the File Import/Export utility uses by default has been changed from *.tpt to *.xpt. This is the new format that the Food and Drug Administration officially supports. Importing SAS *.sd2 files that are generated from code that contains a call to the SAS 'format' statement now works correctly. When using the Export Data From File dialog, and choosing columns to export - you cannot use CTRL-click method to export multiple columns. You have to type in the names. The origin was wrong in the Dates column returned by import.data.fame. It was 1/1/2000 but has been corrected to be 1/1/1960. OBJECT EXPLORER/WORKSPACE The GUI no longer unnecessarily loads the data from the engine when columns of a DS are selected in the OE, synchronizing selection in the OE when the window becomes active and on top, or initializing any dialog with a wide formula control. Workspace files with type *.sws now launch S-PLUS from the Windows Explorer. STATISTICS A mistake in the default weight expression returned by glm.weight resulted in incorrect answers from many calls to glm(). The function menuChisq() incorrectly applied Yates' correction algorithm in all cases when a contingency table was given as input, even when the checkbox for Yates correction was cleared. It now respects the checkbox. plot.multicomp() now correctly computes the number of comparisons per page if the number of comparisons is an exact multiple of 21. A new function, print.survfit.computations, can be used to obtain the matrix of results printed by print.survfit. A browser statement left in plot.discrim has been removed. BUGS FIXED FOR S-PLUS 2000 Release 1 GUI Trellis no longer drops the maximum value from each conditioning level when double precision data columns are used for conditioning. Error reporting of clipped lines in traditional command line graphics sometimes resulted in a GPF. This has been fixed. Unless the "short date" was set in the control panel setting, any date not in the range 1900-1999 was recorded incorrectly in the engine. This has now been fixed. The "Table Name" field in the "Import ODBC" dialog always displayed the wrong table name when connecting to an ODBC database. This has now been fixed. A limit of 127 attaches per S-PLUS session has been removed. OLE Automation Bug Fixes: - Fix for passing date/time values in a two-dimensional array to S-PLUS. - Corrected reference counting problems when copying incoming variants to temporary variants. - Corrected reference counting problems when calling methods and setting properties on AutomationClient objects from S-PLUS. The arima.forecast function now gives the correct number of forecasts. In importing data from Excel or Access, column names are no longer truncated to 31 characters. If you select two numeric columns and a factor column, then click on the Line plot button, a separate line plot is now created for each factor level. You can now specify the default font list for command line graphics. See the Release Notes for further details. Formatted date columns from Excel now import correctly into S-PLUS. Changes to column width and description made in the Column properties dialog are now saved correctly. The toolbar item for inserting columns has been redesigned so that its purpose is now clearer. Confusion with changing column types has been reduced. You can now specify a column to use as labels when identifying points using the Annotations palette. The first 74 characters from the Description field of a column are now used for axis labels if present. (The previous limit was 31 characters.) Predictions, residuals, fitted values, and other results can now be appended to the original data set when fitting tree models using the menus and dialogs. The predict function now gives correct answers for lm and glm objects when the newdata argument is given that includes factors with just a subset of the factors used in the original fit. There is now an option (set by default) that allows the Commands window to retain focus when you create a graph from the Commands window. When importing a SAS or SPSS file containing missing values, NAs were read as NaNs when data type was "factor". This has been corrected. When importing a SAS file, the options StartRow and EndRow are now recognized. The following bootstrap bugs have been fixed: Fixed bug when using group and any group had size 1. Fixed handling of seeds. Fixed calculation of bias in `jack.after.bootstrap'. Fixed bug that caused failure if `B'=1 + multiple of `block.size' In the uniroot and optimize functions, argument handling for passing ... arguments and the attributes from previous function calls back to the function has been improved.