-
Notifications
You must be signed in to change notification settings - Fork 315
/
NEWS
4774 lines (3163 loc) · 167 KB
/
NEWS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Dear Emacs, please make this -*-Text-*- mode!
**************************************************
* *
* 1.6 SERIES NEWS *
* *
**************************************************
CHANGES IN R VERSION 1.6.3
BUG FIXES
o The fix to PR#2396 broke read.table() on files with CR line
endings. (PR#2469) Separate problem with this on Carbon Mac
build fixed as well.
o Converting Sweave files to noweb syntax using SweaveSyntConv()
was broken.
CHANGES IN R VERSION 1.6.2
BUG FIXES
o plot.stepfun() now obeys a `ylim=.' specification.
o removeClass() does a better job of removing inheritance
information.
o setIs() will not allow mismatched representations between two
classes (without an explicit coerce method).
o The code underlying polygon drawing contained a memory leak.
This showed up in persp, but did not affect other graphics
functions. It is now possible to draw big DEMs.
o logLik.nls() gave wrong df. (PR#2295)
o rbind() with a mixture of data frames and matrices treated the
matrices as vectors. (PR#2266)
o stripchart(method="stack") was not handling missing values. (PR#2018)
o Arithmetic functions such as log() lost the object bit from
classed objects if coercion was needed. (PR#2315)
o exp_rand would go into an infinite loop if unif_rand returned 0.
o formatC(x, format="fg") could return exponential format if
rounding pushed x over a positive power of 10. (PR#2299)
o attr(x, foo) used partial matching for `foo' (even though not
documented to do so), and failed to find `foo' if there were
two or more partial matches before the exact match in the list
of attributes.
o Rdconv now creates direct HTML hyperlinks when linking to
documentation in the same package. The code now ensures that
links which can be resolved within the package are so resolved,
even when there are possible resolutions in other packages.
o If readBin(what=character()) is used incorrectly on a file which
does not contain C-style character strings, warnings (usually
many) are now given.
o Building libR.so with the zlib in the R sources was not
finding the local zlib headers.
o system(intern=TRUE) has an undocumented line length limit of
119 chars both on Unix and Windows. The limit is now 8096 and
documented. On Unix (only) every 120th character used to be
discarded.
o plot.POSIX[cl]t were not passing graphics parameters on to
axis.POSIXct.
o On some HP-UX systems, installed scripts were not executable
when using the BSD-compatible install system program found by
configure. We now always use install-sh on HP-UX. (PR#2091)
o c() was converting NA names to "NA": now proper NA strings are
used wherever possible. (PR#2358)
o A typo was causing segfaults when using data.entry under SuSE.
o mostattributes<-() was failing to copy across dimnames when
one component was NULL, affecting pmax() and pmin() when the
first argument was a matrix. (root cause of PR#2357)
o The pdf() device now initialises graphical parameters
properly. (PR#2281)
o Checks in the C code prevent possible memory faults when
standardGeneric is called invalidly.
o Macros NEW_OBJECT (aka NEW) and MAKE_CLASS added; required by
the .Call interface to generate arbitrary objects.
o Problem that prevented package tcltk from working with Tcl/Tk
8.4 (crash on initialization) resolved. (Notice that binaries
may still require an older Tcl/Tk, for example on Windows).
o type.convert() was not getting the levels right if passed a
character vector containing <NA>s, and `na.strings' did not
contain "NA". This affected read.table().
o Internal match function did not check for nor handle 0-length
vectors. (The R function match() did.) This could cause
type.convert() to segfault.
o The line length limit in output text connections has been
raised to 8095 chars.
o Sweave now uses anonymous file rather than text connections
to avoid the limits of the latter (see previous item).
o parsing did not work on connections when pushback was used (as
it had never been implemented). (PR#2396)
o max.col() only found NAs in the first column (typo).
o Added a workaround for recent versions of glibc (e.g. RedHat 8.0)
with inconsistent mktime/localtime functions which caused
conversion to/from POSIXct times prior to 1970-01-01 to be
inconsistent. On such platforms this is a run-time test to
allow e.g. R compiled on RH7.2 to run on RH8.0.
o Clipping was not being reset properly between plots on the gtk()
device (the default under the GNOME interface). (PR#2366)
o axis(*, fg= cc) now works (again) the same as axis(*, col = cc).
CHANGES IN R VERSION 1.6.1
NEW FEATURES
o Added a few "trivial and obviously missing" functions to tcltk:
tkchooseDirectory, tkpopup, tkdialog, tkread
o barplot() has a new argument `axis.lty', which if set to 1
allows the pre-1.6.0 behaviour of plotting the axis and tick
marks for the categorical axis. (This was apparently not
intentional, but axis() used to ignore lty=0.)
The argument `border' is no longer ".NotYetUsed".
BUG FIXES
o hist(<datetime>, cex.axis = f) now works for x-axis too.
o prompt() gave wrong \usage{.} for long argument default expressions.
o summary(x) gives more information when `x' is a logical
(or a data frame with a logical column which is now quite customary).
o seq.POSIXt(from, to, length.out= . ) could give too long results
o summaryRprof() was counting nested calls to the same function
twice.
o Printing of objects of mode "expression" did strange things if
there were "%" characters in the deparsed expression (PR#2120).
o as.matrix.data.frame converted missings to "NA" not character NA.
(PR#2130)
o spec.pgram() was only interpolating zero freq for one series. (PR#2123)
o help(randu) had % unescaped in the example. (PR#2141)
o Making html links would fail if packages-head.html was not
writeable. (PR#2133)
o Sweave.sty was not installed to $R_HOME/share/texmf when
builddir != srcdir. On Windows backslashes in latex paths have
to be replaced by slashes.
o A memory leak in deparsing was introduced when eliminating
static variables (thanks to Achim Zeileis for spotting this).
A similar problem in loading workspaces has been corrected.
o TclInterface.Rd incorrectly used \synopsis for \usage so that
the usage section wasn't output.
o Readline stack off-by-one error. (PR#2165)
o R_ExpandFileName had a memory leak in the case libreadline was
used under Unix-alikes.
o sys.save.image() now closes all connections so it will work even
if the connection list has become full.
o loess() had an unstated limit of four predictors: this is now
documented and enforced.
o ${R_HOME}/etc/Renviron.site is now not read if R_ENVIRON is
set, as documented. Previously it was read unless R_ENVIRON
pointed to an actual file.
o Startup.Rd described the processing under Unix-alikes but
incorrectly implied it happened that way on the Windows and
MacOS ports. Neither use Renviron.site, for example.
o besselK(x,*) now returns 0 instead of Inf for large x. (PR#2179)
o The Tcl console code didn't work with Tcl/TK 8.0, and has been
#ifdef'd out. (PR#2090)
o format.AsIs() was not handling matrices.
o sd() was not passing na.rm to var() for matrices and data frames.
o dist() {mva} silently treated +/-Inf as NA.
o setwd() now returns NULL invisibly.
o basename() and dirname() did not check the length of their
input and ignored elements after the first. This affected
undoc {tools}.
o If A had dimnames, eigen(A) had inappropriate dimnames. (PR#2116)
o as.POSIXct.dates had a sign error for the origin (PR#2222)
o The claim that pie charts should be avoided (in pie.Rd) is now
supported by a quote from Cleveland (1985).
o The vsnprintf() functions supplied for systems that don't
supply their own had a bug in the output of fractional parts,
corrupting data if using save() with ascii=TRUE. (PR#2144)
o pretty() values close to 0 in some cases which are now 0 (PR#1032
and D.Brahm's mails).
o factor.scope() was giving an error rather than a reasonable
default in some cases when it was called incorrectly (e.g. via
incorrect formula in add1()).
BUILD ISSUES
o Toplevel Makefile was missing dependency of "docs" on "R" (causing
parallel makes to go wrong)
o When building with recommended packages those were installed
into the first path in R_LIBS, if the environment variable was
present.
CHANGES IN R VERSION 1.6.0
USER-VISIBLE CHANGES
o The default colour palette now has "grey" instead of "white"
in location 8. See palette().
o grid(nx) behaves differently (but the same as in R versions <= 0.64).
NEW FEATURES
o New operator :: in the grammar, for name spaces.
o New faster rowsum(), also works on data frames.
o grep(), (g)sub() and regexpr() have a new argument `perl'
which if TRUE uses Perl-style regexps from PCRE (if installed).
New capabilities option "PCRE" to say if PCRE is available.
o Preparations for name space support:
- Functions in the base package are now defined in a name space.
As a temporary measure, you can disable this by defining the
environment variable R_NO_BASE_NAMESPACE.
- UseMethod dispatching now searches for methods in the
environment of the caller of the generic function rather
than the environment where the generic is defined.
o The objects created in the methods package to represent
classes, generic functions, method definitions, and
inheritance relations now themselves belong to true classes. In
particular, the "classRepresentation" objects follow the description
in "Programming with Data" (section 7.6).
o Other additions and changes to the methods package:
- The function setOldClass() has been added, following the
description on page 450 of "Programming with Data". Use it
if old-style classes are to be supplied in signatures for
setMethod, particularly if the old-style classes have
inheritance. Many of the old-style classes in the base
package should be pre-specified; try getClass("mlm"), e.g.
- The setGeneric() function applies some heuristics to warn
about possibly erroneous generic function definitions.
(Before, obscure bugs could result.)
- The function promptMethods() has been revised to work better
and to provide aliases for individual methods.
- The behavior of the as() function has been generalized, in
particular with a strict= argument, the general goal being
to let simple extensions of classes pass through in method
dispatch and related computations without altering the
objects. More to make method behavior more "natural" than
for direct use.
- Some inconsistencies following detach("package:methods")
have been removed, so it _should_ be possible to
detach/re-attach the methods package.
o New methods ([[, print, str) and extended plot() method
(incl. logical `horiz') for "dendrogram" class.
o sprintf() now checks the agreement between formats and object
types, and handles special values (NA, Inf, ...) correctly.
o chol() now uses a tolerance for non-positive-definiteness and
so should give more consistent results across platforms.
o New function agrep() for approximate (fuzzy) string matching.
o help.search() can now use both approximate (fuzzy) and regular
expression matching. By default, if the pattern to be matched
consists of only alphanumeric characters, whitespace or a dash,
approximate matching is used.
o axis() has three new optional arguments `col', `lty', and `lwd'
all for drawing the axis line and tick marks.
o Function vcov() (formerly in MASS), a generic function to
return the variance-covariance matrix of the parameter
estimates of a fitted model.
o duplicated() and unique() have methods for matrices and arrays
(based on ideas from Jens Oehlschlägel).
o Internally memory sizes and counts of cons cells are now stored
in unsigned longs. This allows memory limits to be set and
objects created in the range 2-4Gb on 32-bit platforms, and
allows 64-bit platforms to use much larger amounts of memory.
o Command-line flags to set memory can now use the suffix `G'
for gigabytes. The setting of maximum vsize is now only
limited by the platform's address space.
o All warning and error messages are truncated to a length set
by options(warning.length=), defaulting to 1000. (Previously
most (but not quite all) were truncated at 8192 characters.)
o [dpqr]gamma() check for shape parameter > 0.
o as.POSIX[cl]t can now convert logical NAs.
o All installed packages (even those shipped with R) are
given a `Built' field in the DESCRIPTION file.
o as.data.frame() now coerces logical matrices into logical
columns (rather than factors).
o [[<-.data.frame no longer coerces character replacement values
to factor. This is consistent with using $ to replace and
with S4.
o library() attempts to detect improperly installed packages, so
as from this version an installed package must have a
DESCRIPTION file and that file must have been stamped with a
`Built:' line (which was introduced in 1.2.0). Under
Unix-alikes, the platform is checked against that used for
installation.
o print.factor() has new arguments `max.levels' (with a smart default)
and `width'. print.ordered() is no longer needed.
o RNGkind() has an additional option for normal random generators:
"Inversion".
o data.frame() recycles factors and "AsIs" objects as well as
atomic vectors.
o predict.lm() warns if `newdata' is supplied and the fit was
rank-deficient, as this can be misleading.
o rect() accepts additional graphics parameters through a ...
argument (in the same way as polygon).
o strwidth/strheight() now coerce their first argument in exactly
the same way text() does, so a wider range of inputs is allowed.
o prompt()'s default and data.frame methods have a new 3rd argument
`name' allowing them to used more easily in scripts and loops.
o rgb() has a new `maxColorValue' argument, allowing r,g,b in [0,M],
particularly in {0:255}, efficiently and non-error-prone.
o summaryRprof() provides the functionality of R CMD Rprof in R
code, though more slowly.
o stop() accepts multiple arguments (which are concatenated)
just as warning() does.
o scan() now throws an error with incorrect logical input (which
was previously taken as FALSE).
o pdf() now uses PDF not R code for clipping, which ensures that
partially visible text strings are (partially) shown.
o Each R session uses a per-session temporary directory which
is removed at normal termination. The directory name is given
by the tempdir() function, and filenames returned by
tempfile() will be within that directory.
o help.start() on Unix now uses a .R subdirectory of the
per-session temporary directory and not ~/.R. A side effect
is that ~/.R is now never deleted by R.
This now uses the remote control mechanism only if the X
display is local to the R process (as otherwise it might use a
browser running on an arbitrary machine).
o *Very* experimental browseEnv() for browsing objects in an
environment.
o cbind/rbind() used to ignore all zero-length vectors, an
undocumented quirk for S-compatibility. This caused problems
when combining zero-extent matrices and zero-length vectors, and
now zero-length vectors are ignored unless the result would
have zero rows/columns.
o read.table(stdin()) will now work.
o plot.spec(x) now also works for other x than AR and Pgram results.
o New functions La.chol() and La.chol2inv() for Cholesky
decomposition and inverse of positive definite matrices using
Lapack.
o Changes to the tcltk package
- on Unix systems, the Tcl event loop has been integrated with
R's own (so that tkwait.variable() no longer halts updates of
plot windows).
- also on Unix, stubs have been created to divert R's input
and output routines to go via Tcl commands. (Nothing
uses this at present, but packages might be developed to
take advantage of it.)
- return value from Tcl commands is no longer invisible. A new
print method, print.tclObj(), has been introduced.
- Tcl variables created by tclVar() are now explicitly put into
Tcl's global namespace, removing potential scoping problems.
- The tcltk dynamic library now loads with local=FALSE since
the default had trouble when loading Tcl extensions
(e.g. Tix)
- The tkpager() function had not been updated for the return
value change from 1.5.0
o The bmp(), jpeg() and png() devices can produce multiple
bitmap files, one for each page. The default filenames have been
changed to include a sequence number.
o New function axTicks() returning tick mark locations like axis().
o grid() has a more sensible default behavior. Tick axis alignment
only happens when no numbers of grid cells are specified. New
arguments lwd and equilogs; nx/ny = NA for not drawing, see ?grid.
o installed.packages() has a new argument `priority'.
o termplot() uses factor levels rather than 1,2,3... for x-axis.
o Workaround for optimization bugs on gcc 3.1/2 on 32-bit Solaris.
o The trace() function has been robustified and a new function
tracingState() added to turn tracing temporarily on and off.
o New cophenetic() in "mva" as utility for hierarchical clustering.
o p.adjust() has two new methods, 'Hommel' and 'FDR', contributed
by Gordon Smyth <smyth@wehi.edu.au>.
o stars() now has add and plot arguments.
DEPRECATED & DEFUNCT
o The assignment operator `_' is deprecated: a warning is given
once per R session.
o machine() is deprecated in favour of .Platform$OS.type.
Machine() and Platform() are deprecated in favour of .Machine
and .Platform.
o arima0.diag() (package ts) is defunct.
o piechart() is defunct.
o print.ordered() has been removed, so print.factor() is used.
o The global internal variables .Dyn.libs and .lib.loc are
removed in favor of the internal functions .dynLibs() and
.libPaths().
o restart() is deprecated in preparation for proper exception
handling. Use try(), as has long been recommended.
DOCUMENTATION CHANGES
o New demo(persp) containing some of the former example(persp) ones
and more.
C-LEVEL FACILITIES
o Rversion.h is no longer automatically included by R.h.
Include it explicitly if you need it.
o New entry point R_tmpnam in Utils.h.
o The Unix event loop interface has been changed to facilitate
integration with other loops. R_checkActivity and
R_runHandlers should eventually replace getSelectedHandler.
INSTALLATION CHANGES
o Perl 5.005 or newer is now required.
o R CMD INSTALL is now guaranteed to sort the R source files in
ASCII order.
UTILITIES
o R CMD check now tests for mis-use on an installed or binary
package, and sets 'T' and 'F' to 'NULL' when running the
examples.
o New function SweaveSyntConv() converts between Sweave file
syntaxes. RweaveLatex() now gets its prompt from options() and
uses the text width as linebreak cutoff for deparsing input
statements.
BUG FIXES
o axis() was not respecting par("mgp")[3] by default.
(PR#916)
o tcltk back-compatibility fix for tcl8.0
o hist.POSIXct(*, breaks) now works for `breaks = #{breaks}' and
when `x' has NAs; the latter applies to cut.POSIXct() as well.
o The internal download.file() methods were setting the proxy
port to 0 unless it was specified.
o poly() did not work for >=3 column matrices.
o cut.default() was not handling infinite values with infinite
breaks. (PR#1694)
o ks.test() could fail due to integer overflow if n.x and n.y
were both large.
o all.equal(3., 3:3) wasn't TRUE when the methods package was
present.
o read.table() could remap non-syntactic names to duplicates,
and did not check for duplicated names.
o ls.str(envir = environment(F)) now works (when F is a function).
o pie() now has a `border' (and 'lty') argument which allows empty
slice borders and makes pie() useable for hundreds of slices.
o all.equal.character() now works correctly also when NAs don't
match (PR#1767).
o all.equal.numeric() now gives character {instead of list} when
lengths don't match.
o read.dcf() had a memory leak.
o Setting "tcl = a" in a highlevel graphic function worked almost
as if par(tcl = a) was called (i.e. was persistent). Further,
after par(tcl= <.>), highlevel graphic setting of tcl didn't work
anymore. "tck" has now S's default of -0.01 (when tcl=NA).
o data() was not checking if ./data was a directory before
warning.
o Assignment beyond the end of character strings was filling
with "", whereas changing the length extended with NA_STRING.
Now NA_STRING is used for both.
o boxplot()s with logarithmic scale in "width-direction" now have
proper widths, i.e. typically constant.
o Using GNU readline in asynchronous event callbacks (e.g. TclTk
or Gtk) works correctly, i.e. doesn't cause readline to abort
the process.
o Using Q to exit a browser invoked at the top-level could lead to
the browser being invoked on all future top-level loops (PR#1721)
o step(fit, direction="both") now uses both directions even if
no scope is supplied.
o strwidth(), strheight() now give 0 on NA strings (as they
are no longer plotted). (PR#1739)
o mtext(), persp(), plot.hclust() and title() no longer plot NA
character strings.
o pdf() has been protected against the user who specified
non-existent fonts. (PR#1748)
o dlnorm() returns zero for negative x argument. (PR#1781)
o Printing 0 in octmode gave "" not "0". (PR#1759)
o anova.glm() was ignoring a `dispersion' argument if given
multiple objects. (PR#1807)
o model.matrix() with a `rhs ~ .' formula included columns with
duplicated names in the data frame, which caused subsequent
confusion (e.g. in prediction from the object).
model.matrix() was sometimes incorrectly determining the first
factor in a formula without an intercept.
o termplot() now needs data= argument more rarely. (PR#828)
o abline() on log scale doesn't draw -ve points. (PR#1243)
o The Java search engine now works within Mozilla 1.0 and
Netscape 6.2.x / 7.0pr1.
o unsplit() failed if f was a list of factors. (PR#1843)
o The methods package generic version of primitives is now "sealed"
and cannot be redefined (it was always a bad idea to do so).
o quantile() gave -Inf not NaN in some examples. (Related to PR#1852)
o read.table() read too far in checking the file structure if
0 < nrows < 5 and more rows existed on the file. (PR1809)
o loess() was not checking for too small a span (so no points
were included in the smoothing window).
o match() was assuming that there was only one possible bit
pattern for a numeric NA, so some matches failed on Solaris
under some compiler options.
o identical() no longer thinks NaN and as.double(NA) are identical.
o pipe() can open in a binary mode even on Linux (where popen
cannot).
o zero-column matrices were not being printed at all, not even
the row names.
o polygon()'s `border' argument was incorrectly documented: in
particular `border = 0' plots in background colour.
o delete.response() was losing the attribute set for safe
prediction. (PR#1840)
o poly() was checking the degree against the number of points
even when predicting.
o Comparison of a data frame and list failed due to typo. (PR#1889)
o dput() and dump() attempt to check if writing succeeded. (PR#1884)
o rep(1:2, 0) and hence array(1:2, 0) fail no longer.
o apply(matrix("", 3, 0), 2, length) now works.
o order(na.last = NA, decreasing = TRUE) now sorts in decreasing
order. (PR#1906)
o order(na.last=NA) failed if all args were of length 1 or all
were NA. (PR#1913, 1981)
o source() would crash if the `keep.source = TRUE' and the input
contained a function with a line longer than 1024 chars. (PR#1900)
The limits on nesting of functions and on total function size
when the source is kept are now enforced. As (incorrectly)
the source was always kept, this meant functions longer than
128Kb could crash R, even in packages.
o lqs() and cov.rob() check that the quantile argument does not
exceed n-1.
o grid() now also works with log coordinates active.
o plot.table(tab, xlab="X", ylab="Y") now works as expected.
o plot.formula(ask=FALSE) now works. (PR#1923)
o as.list(<logical>) now works properly. (PR#1926).
o The residual SSq printed from an aov() fit with weights is
now the weighted SSq. (PR#1930)
o aov() could still fail on multistrata models with very long
Error formulae.
o try() could fail in BATCH use due to use of fflush(stdin).
Only seen on Solaris. (PR#1934)
o title(main=list("main")) printed garbage, as did similar calls
using quote() instead of expression() for plotmath. (PR#1939)
o deparse() dropped parentheses in some case where they were
needed. (PR#1119, 1737, 1928, at least)
o pdf(onefile = FALSE) never incremented the file number beyond
two.
o On Unix, protect against broken pipes where popen calls succeed
even though the command does not exist (and the glibc manual
says it should return NULL). (PR#1959)
o data.frame() was allowing explicit row.names with missing
values, but row names are required to be unique.
o as.character(expression) was silently truncating to 60
characters: the help page claimed 500 which is now true.
o as.hclust(x) now also works (as identity) for "hclust" objects.
o NextMethod didn't work right in Ops.
o dotchart() now obeys `xlim ='.
o t(x) behaves when x is a (multivariate) time series. (PR#1998)
o parse(text=x) no longer parses from stdin if length(x) is zero
o binom.test() miscalculated p-value in some extreme cases
o get("print.ts")(1) would segfault. It's now just an error.
o cbind(NULL) {and similar} gave an error instead of NULL.
o the complex version of solve(a,b) now also works if b is a
vector
CHANGES IN R VERSION 1.5.1
NEW FEATURES
o Enhancements to mathematical annotation of plots:
- expressions involving dot(<something>) now produce a dot accent
above the <something> (initial patch from Ben Bolker).
- within an expression, the symbol partialdiff is now converted
to a partial differential symbol (greek delta).
o smooth.spline() has a new argument `nknots' allowing to set the
default number of knots (when `all.knots = FALSE' as per default).
BUG FIXES
o Rdconv now skips CRs in input files, even on Unix.
o readBin() had a (very slow) memory leak if changing size or reading
character strings. writeChar() had a memory leak.
o polygon() and rect() with lty = "blank" were omitting the fill
colour (if present). symbols(circles=, lty="blank") was
drawing the border of the disks.
o Subsetting non-existent rows in a data frame would produce
missing row names, which are not allowed.
o On Unix, R_PAPERSIZE was set to '' instead of 'a4' as default on
systems without paperconf.
o Under GNOME, capabilities() now reports correctly that X11, png
and jpeg are available (if they are under X11).
o The names of some results of unlist() had the wrong internal
length, which confused paste(). Both have been corrected. (PR#1524)
o RweaveLatex.Rd had unbalanced braces in section "Supported
Options".
o merge() with multiple and differently-named match columns
failed. (PR#1510)
o NAs in right-justified unquoted character matrices were being
mis-aligned. This mainly affected printing data frames.
o predict.*bSpline() bugs extrapolating for deriv >= 1 (PR#1473),
and predict.[bn]s bug e.g. for bs(x), reported by Ch.Sangiorgio.
o qr.X was failing if n < p. Fixed, but only in the case when
pivoting does not occur. (PR#1519)
o xx[, 1:3] was returning a list if xx had only one row, even
though xx[1, 1:3] was a data frame. (PR#1530)
o nls() was reporting incorrectly the number of iterations if the
maximum was reached.
o rbind.data.frame() was coercing logical columns to factors.
(PR#1536)
o Rprof(NULL) or Rprof("") called when not profiling caused a
segfault: now silently ignored. (PR#1471)
o On systems (e.g. Windows) using R's own code for expm1, the
values were wrong for large negative x, and this affected
pweibull(), for example.
o prettyNum(*, bigmark=*) added extra marks in some cases. (PR#1548)
o cut.dendrogram() failed in some cases. (PR#1552)
o The links in refman.pdf were broken by a single invalid
\alias{}. Now Rdconv checks more comprehensively. (PR#1550)
o predict(smooth.spline(x,*), deriv =1) did not predict at all `x'
values, and
smooth.spline(x,*, all.knots = TRUE) used much too much memory
when length(x) was largish.
smooth.spline(*, .... trace = TRUE ..) is a bit more self-explaining.
o pexp(x, log=TRUE) and pweibull(*) were losing precision for large x.
o Workaround for NetBSD bug in compiling dounzip.c. (PR#1565/6)
o Conversions to numeric in type.convert were always treating "NA" as
missing whatever the setting of na.strings. (PR#1568)
o R CMD check now deals correctly with package names containing a
'.' in the Depends field of a DESCRIPTION file. (PR#1591)
o pbinom() and pbinom() were misssing the "fuzz" that other discrete
distributions have in order to guard against truncation.
o The "=" assignment operator behaved as "<<-" in some constructions
with composite left-hand sides.
o Added print.AsIs() method to ensure "AsIs" objects are printed
by the method for their real class. (PR#1587)
o mosaicplot(*, color = v) now recycles v[] if needed.
o Calling dev.control("inhibit") with no graphics device open
crashed R. (PR#1605)
o read.dcf() was not checking that memory allocation succeeded.
o The C function fprec might overflow for > 16 digits, showing
up in example(str) on some platforms.
o Changes to the methods package:
- Nonstandard generic function definitions given to
setGeneric now work; these were previously ignored.
- Classes that extend matrix, etc. as the data part previously lost
their attributes.
- There were bugs in distinguishing methods for "missing" from
methods for "ANY".
- Some coerce methods were not selected correctly when the two classes
were related by an "is" relation.
- extends() now works correctly if given a class definition rather
than a name.
- class()<- was leaving in an explicit class attribute for basic data
types.
- Method signatures including arguments following "..." in the
argument list of the generic didn't work.
o par(mgp = v) now allows negative `v' (S-compatibly and sensibly).
o identify.hclust() masked its `x' argument and so failed.
o System rint was never being used in fround.c.
o round/trunc.POSIXt were erroneously retaining information on
DST. (PR#1543)
o tcltk package didn't work with tcl8.0.x. Compatibility code
inserted (PR#1640, thanks to René Bertin for helping out with
this).
o selfStart() {pkg "nls"} now works again when parameter names are
not specified (but implicit).
o legend() now treats lty="0" properly (as solid).
o ARMAacf was failing if 0 < p < q+1: it failed to say that ar needed
to be padded with zeroes, and now the code does that.
o old.packages() was assuming a bundle was installed in only one
library, and so update.packages() would only update a bundle
in the first location in lib.loc.
o fisher.test() could miscalculate odds ratio and confidence
interval for tables with large entries, due to numerical
overflow.
o Using lty = "1" (or "10") does no longer produce invalid
postscript or pdf. Using "0" in a character lty is currently not
implemented device-independently and needs more fixing.
o ccf(plot = FALSE) was returning a spurious extra 0 at lag 0.
o On console-based versions of R (Windows, GNOME, probably
MacOS) warning/error messages longer than 8192 chars could
crash R. (PR#1651)
o Comparisons between objects of mode "call" using "==" now return
TRUE if both sides deparse to the same string (as always intended).
o HoltWinters() now initializes correctly in the exponential
smoothing case, and plot.HoltWinters() allows lty to be set.
o fisher.test() crashed due to corruption on some large
problems. It also crashed on tables with total one. (PR#1662)
o The substitution code for strptime (used e.g. on Windows)
cached the month names and so did not recognise locale changes
during an R session, as used by get.hist.quote{tseries}.
Caching has been supressed. (PR#1116)
o Some functions used the non-existing error() function instead
of stop().
o vector("complex",n) doesn't return random garbage anymore.
CHANGES IN R VERSION 1.5.0
USER-VISIBLE CHANGES
o XDR support is now guaranteed to be available, so the default
save format will always be XDR binary files, and it is safe to
distribute data in that format. (We are unaware of any
platform that did not support XDR in recent versions of R.)
gzfile() is guaranteed to be available, so the preferred
method to distribute sizeable data objects is now via
save(compress = TRUE).
o pie() replaces piechart() and defaults to using pastel colours.
o formatC has new arguments (see below) and formatC(*, d = <dig>)
is no longer valid and must be written as formatC(*, digits = <dig>).
o Missingness of character strings is treated much more
consistently, and the character string "NA" can be used as a
non-missing value.
o summary.factor() now uses a stable sort, so the output will
change where there are ties in the frequencies.
NEW FEATURES
o Changes in handling missing character strings:
- "NA" is no longer automatically coerced to a missing value
for a character string. Use as.character(NA) where a missing
value is required, and test via is.na(x) not x == "NA".
String "NA" is still converted to missing by scan() and
read.table() unless `na.strings' is changed from the default.
- A missing character string is now printed as `NA' (no quotes)