-
Notifications
You must be signed in to change notification settings - Fork 86
/
Copy pathNEWS.0
2825 lines (1768 loc) · 91.4 KB
/
NEWS.0
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!
This file covers NEWS up to the release of R-1.0.0.
See 'NEWS.1' for subsequent changes.
**************************************************
* *
* 0.99 SERIES NEWS *
* *
**************************************************
CHANGES IN R VERSION 0.99.0
NEW FEATURES
o The ``Introduction to R'' manual, in doc/manual.
The ``Writing R Extensions'' manual is much enhanced for
this release.
o The format for save/load has been changed. Workspaces and
objects saved in earlier versions can be loaded into this
version, but not conversely. Use save() or save.image() with
argument oldstyle=TRUE to save in the old format if you need to.
o The header files for C code have been reorganised. The
preferred header file for user code is now "R.h", and
ancillary files such as Arith.h now need to be referred to
as "R_ext/Arith.h". The `Writing R Extensions' manual now
contains the beginnings of a description of the public API and
how to use it.
o Many of the exported symbols have been remapped or hidden. This
means that code using Rdefines.h or Rinternals.h or Mathlib.h
will need to be re-compiled, and code using Applic.h may do
so.
Many packages will need to be re-installed for use with this
release.
o The random number generation interface has changed, although
saved .Random.seed's will work unchanged. The default
generator is now Marsaglia's multicarry, and the Mersenne
Twister GFSR and Knuth's Fibonacci subtraction are also
available. The type of normal generation can be selected by
RNGkind() (and is encoded in .Random.seed).
The new function set.seed() which uses a single integer to set
the random number seeds is now the recommended way to do so.
It is now possible for a user to plug-in a new RNG written
in C: consult ?Random and ?Random-user for the details.
o All the DPQ {probability density quantile} functions have new
arguments, "lower_tail = TRUE" and "log{_p} = FALSE". This allows
more precise results when values would be close to 0 or 1.
o R CMD Rd2dvi has new options --pdf, --title and --output.
o New fields Date, URL and Title in the DESCRIPTION file of
packages. The Title field replaces the separate TITLE file of
packages, which is no longer necessary.
o residuals.lm() has a "type" argument, as S does.
o The underlying code for nlm has been translated from Fortran
to C and made re-entrant (changes contributed by Saikat DebRoy).
o optimize() can now be used recursively.
o New suite of optimization methods optim(), covering
Nelder-Mead, BFGS quasi-Newton and conjugate-gradients methods
for unconstrained minimization and maximization with and
without derivatives.
optim() also allows box constraints (interval bounds on
individual variables) in its limited-memory BFGS option.
o R now compiles in the GNU version of regex, so regular
expressions (grep, sub, gsub, regexpr, "pattern" in ls) are
always available. The class of regular expressions supported
is now slightly wider on some Unix platforms.
o package ctest (for classical tests) is now part of the base
distribution, and also contains chisq.test, prop.test and
t.test which previously were in package base. These three
functions are auto-loaded from ctest.
o New utility `R CMD build' for building add-on packages along
with some useful testing and cleaning up.
o Conversion of .Rd help files to text format is done in Perl,
and no longer requires nroff. This makes the conversion 8-bit
clean and more accurate.
o Building help for a package now removes help files that no
longer exist in the source.
o strsplit() now uses split regexps, and no longer insists on
splitting into non-empty tokens.
o Long-named options with arguments such as `--vsize' now use the
`--name=VALUE' form; the old `--name VALUE' is deprecated.
The old-style command line options `-v' and `-n' are now defunct.
o par("cxy") { == par("cin")/par("pin") in user coordinates}
for S compatibility.
o If R_PAPERSIZE is not specified otherwise, configure now tries
to compute it by calling paperconf.
o The deprecated alternative RPROFILE is no longer accepted: use
R_PROFILE instead.
o Added setequal() for set equality.
o First argument renamed to "package" for library(), require(),
provide().
o model.frame() now accepts data= arguments that can be coerced to
data frames.
o Help files can now contain \describe groups.
o Hyperlinks in help files can now use LaTeX special characters.
o rstandard() now also works for glm objects.
o glm drops 0-weight observations when fitting so that the
output is compatible with lm.influence() and plot.lm().
o New function ftable() for creating and manipulating flat
contingency tables.
o New function cutree() for cutting hclust trees in package
mva. New functions rect.hclust() and identify.hclust().
o Under Unix, the default editor is obtained from the environment
variables EDITOR or VISUAL if either is set.
o New command line option `--gui' to specify the graphical user
interface under Unix. Currently, possible values are `X11' (the
(default) and `GNOME', provided that GNOME support is available.
Command line options `-g' and `--gnome' are defunct.
o power.t.test() and power.prop.test() functions added for power and
sample size calculations.
o edit() is now generic and a new edit.data.frame() function
calls up the spreadsheet data editor. This is still rather
rudimentary, since the data editor really only knows about
numeric and character vectors.
o Modifications to the data editor so that one can use ESC to
quit a partial cell entry and entering an empty cell causes
the element to be set to NA.
o prop.table() and margin.table() functions (these are *really* trivial).
o R INSTALL checks the Depends field of DESCRIPTION if the
currently running version of R meets an R
dependency. old.packages() reports only packages conforming
to the current version of R. New function
package.dependencies() for parsing and checking dependencies.
o options("expressions") now does something, and the evaluation
depth is checked on all platforms (not just Macintosh). This
will catch infinite recursions gracefully.
o The default number of cons cells (`nsize') is now 350k (it
was 250k). This reflects the added base code and packages,
and increases memory usage by about 2Mb (on a 32-bit machine).
o Some simple multiple comparison procedures: p.adjust() for
generic adjustment of a set of p values by variants of the
Bonferroni method; pairwise.t.test, pairwise.wilcox.test,
pairwise.prop.test for pairwise comparisons of grouped data
and proportions.
o Error / warning calls with a long description of the call are
split into two lines. (This helps avoid scrolling in the
Windows GUI.)
o lapply() is now internal and substantially faster (7% overall
speed-up on the tests for the base package).
o apply() no longer names the output dimensions unless FUN returns
a result with names, and the same names for every result.
o contour() can (at last) label contours by level.
o persp() labels its axes.
o scan() and read.table() now have a dec= argument to set the
decimal point character. If sep= is set, quoting of strings is
now possible and follows the conventions for comma-separated
files. This should make it easier to read the "continental
CSV" format (fields separated by semicolon and using comma as
decimal point). The set of quoting characters has also been
made optional. Variants of read.table(), read.csv() and
read.csv2() have been defined
o HDF5 support is gone from the R distribution, and provided by an
add-on package available from CRAN.
o New function getOption() for retrieving the value of a single
option.
o read.table.url() and related functions now use download.file,
which has an extra "socket" method for direct HTTP socket
connection. download.file has new option ``quiet''.
o pairs.default() has an oma argument to allow users to override
the internal setting of that graphics parameter.
o princomp() in package mva allows the user to specify the
covariance matrix (and hence use, e.g. cov.mve).
BUG FIXES
o svd(matrix(2,1,0)),
arma0f(NULL), cancor(F,F) and prcomp(F[F]) no longer segfault.
o loess.smooth(F[F],F[F]) and supsmu(F[F],F[F]) no longer segfault.
o save(1, file = ""[F]) no longer segfaults.
o stop(list()) and warning(list()) no longer segfault.
o system(""[F]) and save(1, file = ""[F]) no longer segfault.
o Overflow of the pointer protection stack is handled correctly
o predict.glm(, type="link", se.fit=T) works
o str() now works with Surv(.) objects from library(survival5).
o all.equal(-Inf, -1e5) now gives "Mean absolute difference: Inf"
instead of "Mean relative difference: NaN".
o strsplit fix broke copy.url.
o 0 ^ -1 == Inf and min(NA, NaN) is now always NA
o R CMD xxx sets $R_HOME/bin to be first in PATH
o Added more warnings to update.packages & friends. New function
old.packages for better control of update.packages.
o Adding matrices to data frames now happens column by column as
documented, so character or logical matrices generate factor
columns.
o Formulae containing interactions with the response were
handled incorrectly by model.matrix, giving wrong answers or crashes.
o anova(lm(.)) with 0 weights now works.
o plot.lm(), dffits(), covratio() now do the right thing for weighted
lm regression.
o formatC(as.integer(c(1,0,NA))) now works. PR#394, thanks to Jens O.-A.
o format.char(.) is much faster for long vector argument [Jens O.-A.]
o \enumerate now enumerates in text conversion of .Rd files.
o glm() no longer fails with names<- errors in cases where
observations with fits on the mu.eta boundary have been dropped.
o Deviance residuals could be NaN instead of 0 by rounding error.
o shapiro.test(x) now gives better error messages (eg. x=rep(1,5))
and doesn't print ANYTHING anymore (in some cases).
o mode(as.formula(paste("~", paste(1:50, collapse="+")))[2]) now works.
o glm() now handles cases with numerically 0 or 1 fitted values in
binomial and numerically 0 in poisson correctly. (Previously
these observations were dropped even though the variances were
also numerically 0.)
o (-4 + 0i) ^ (1/2) now gives 2i.
o system.time() now does sensible things in the non-HAVE_TIMES
case, and that and proc.time() have better documentation.
o A couple of bugs in the data editor spreadsheet have been
eliminated.
o Elapsed time in proc.time() is no longer rounded to whole
seconds under Unix.
o Assigning character vectors to subsets of data frames now
works correctly (it used to assign the numeric codes of factors).
o Extensive enhancements and corrections to the help pages.
o The possibility of buffer overruns during printing has been
much reduced, and eliminated on systems with vsnprintf.
**************************************************
* *
* 0.90 SERIES NEWS *
* *
**************************************************
CHANGES IN R VERSION 0.90.1
NEW FEATURES
o rect(.) has `lwd' argument.
o legend() has a `adj' argument and has been streamlined (and fixed up).
o `unname' convenience function [experimental data.frame behavior].
o `examples' sections have been added to the documentation
for most of the data sets in the base library.
o update.packages & friends have new argument contriburl for
incomplete CRAN mirrors. Package bundles such as VR can be
directly installed both from the shell and from inside R.
o RLIBS is no longer accepted as well as R_LIBS (which has been
the documented form since 0.65.0).
o demo(nlm) has examples of using analytical gradients and
Hessians.
o .Platform$OS.type is standardized to be `unix', `mac' or `windows'
o setting cex in matplot(matrix(1:25,5), cex=1:5) now works
o ar.ols() has separate demean and intercept arguments, uses
internal scaling for greater accuracy.
o xxxPR functions allow NCHAR=-1 for S compatibility.
o `Rcomplex' is preferred to `complex' (a future reserved word
in C) for R complex objects passed to C.
o new function dir.create() for platform-independence.
o help.search() creates a database for faster searching later in
the R session.
o density() allows for more kernels and has a new argument
`give.Rkern' to access the relevant kernel property.
o multivariate methods for ar: "yule-walker" (now in C) and
"burg" (new) contributed by Martyn Plummer.
o New data sets `HairEyeColor' (hair and eye color of statistics
students), `Titanic' (survival of passengers on the Titanic),
and `UCBAdmissions' (student admissions at UC Berkeley).
BUG FIXES
o Many help pages have been revised and enhanced.
o predict.glm() works again with type="link".
o subscripting arrays and matrices no longer loses the names of
the dimnames vector. Transpose also preserves the names.
o examples in help files containing \testonly are no longer
(partially) duplicated.
o is.numeric() of a factor is now FALSE
o prevent a segfault in plotmath
o f <- get("function"); f(,); f(F,F) now "ok" (PR#361).
o blank-line reject code in parse.dcf was wrong (Martyn Plummer)
o made filled.contour independent of pointsize. Make plot key
wider so there's room for a title. Touchup example.
o font size fixups for the X11 driver (mainly)
o some.list[[NA]] is NULL, following S, rather than giving spurious
error messages
o segfault when running out of heap
o segfault in rbind of a vector without names fixed. cbind, too.
o fixed symbol size problems with PostScript driver
o unique() & duplicated() only work for atomic vectors;
unique(data.frame(""[F])) doesn't segfault anymore.
o get("attr<-")(""[0],""[0]) doesn't segfault anymore.
o blunder in do_memoryprofile, causing segfault on Alpha machines
o erroneous error message in coerceToSymbol
o partial workaround for workspace restore problems. This can
happen if an environment on the search path is assigned to a
variable which gets saved. The error "unresolved node during
restore" is turned into a warning, allowing the rest of the
workspace to be restored, but the variable contains an empty
environment on reload.
o density(x) now works also when IQR(x) == 0.
density(x, window=...) now works [S compatibility].
o prevent points from being plotted if pch, cex, or col are NA.
Does not apply to bg on pch 21--25 (where NA means
"transparent") because it would require fixes at the driver
level.
CHANGES IN R VERSION 0.90.0
NEW FEATURES
o packages splines (for regression smoothing splines or
interpolating splines) and nls (nonlinear least squares) are
part of the base distribution.
o New error handling using
options ( error = expression(..) , warning.expr = ... ).
REPLACING version 0.65.1's options(error.halt = T/F)
o collected warnings before an error are no longer lost but
are printed after the error message (unless the error makes
this impossible).
o A couple of substantial graphics changes, esp. in the X11
driver. The scaling of symbols is now linear in cex=, rather
than being tied to the available font's size. The fonts on an
X11 device also scale linearly with cex= insofar as your X
server can do it. On systems with the scalable type 1
PostScript fonts installed, this looks particularly nice. Note
that the scaling is linear in the *diameter*, but quadratic in
area. The distance between lines of margin text in the X11
device is now proportional to the size given to
x11(pointsize).
o abline(a,b) now (again) refers to transformed coordinates on
plots with log-axes, so that abline(lm(log10(y)~log10(x)))
(say) draws a best-fitting line on a log-log plot. The earlier
convention (to draw a curve representing a line in original
coordinates) is available using a new untf= argument.
o barplot.default() has new `axisnames' (and `sub') arguments, easily
allowing suppression of bar labeling.
o cbind() and rbind() now actually do what deparse.level=1 implies:
add column/row names based on the deparsed argument, provided it
is a simple symbol. The behaviour is still hardcoded, though.
o gc() now reports the total sizes in Mb as well as numbers.
o New function help.search() for searching the names, titles,
aliases, or keywords in the help system.
o image() allows x and y to specify either the boundaries or the
midpoints of the cells. If the latter, the whole cells are
drawn, rather than the outer cells being half-sized as previously.
o NULL extra arguments to model.frame() are now treated as missing
(instead of an error).
o optimization with nlm() can use analytic gradients and Hessians
if they are supplied.
o on.exit() allows add=TRUE.
o function parse.dcf() for parsing files in debian control file format
(DESCRIPTION, CONTENTS, ...)
o predict.{g}lm has a type="terms" option, and residual.glm has
type="partial" as a step towards plot.gam().
o New arguments to q() and quit() allow the exit status to be set
and the execution of .Last() to be skipped.
o New function regexpr(), similar to grep but returns the position
of the match in each string. (For S-PLUS compatibility.)
o scan() now supports complex numbers.
o New function sort.list, for S compatibility. (This has argument
partial, but always sorts completely.)
o storage.mode<- can be used to set "single", and if setting
anything other than "single" it removes the "Csingle" attribute.
o new function sunflowerplot().
o New function undoc() for listing undocumented objects.
o User's .Rprofile now executes in global environment
o All HTML pages now use the new style sheet doc/html/R.css
o html and text files have now a header line giving the name of
the help file and the package. The description section now
comes first.
o All the standard packages have DESCRIPTION files with
"Priority: base", so installed.packages and
package.description will work with them.
o The R-external manual which describes programming for the
.Call and .External interfaces is in the doc/manual directory.
o New target `make pdf' in doc/manuals makes hyperlinked PDF
documentation. (This is experimental for this release. See
doc/manual/README for further details.)
o S.h now contains (via Rdefines.h) a MESSAGE macro, and
Free NULLs the pointer, for compatibility with S3 (but not S4).
o New subroutine REALPR callable from Fortran (like DBLEPR but
for real arguments): useful if as.single is in use.
o The cex= argument to plot() etc. can be a vector, like pch=.
o lty=0 now (again) makes lines invisible. Looks better for
barplot label axis.
o zero.R tries to find the zero DLL in a system-independent way.
BUG FIXES
o apply should now work for all un-dimnamed arrays (PR#318).
o ar(..., demean=F) works more consistently across methods.
o barplot() had lower limits set at -0.01, causing trouble with
small heights. Switch to relative scale. (Thanks to Matt Wiener)
o density() should work better with NAs and infinite values. See
?density for the current definitions of how these are handled.
o diag(x) now works (as pre 0.65.1) for 1-d arrays.
o Stored-source was dropped by dump().
o expand.grid returns a data frame even for one arg.
o expand.grid(x) now also works for vector arguments x.
o factor(list()) or factor(character(0)) *is* now a factor
with valid levels(.);
ordered does NOT allow an `ordered' argument anymore
and is now defined as trivial call to factor.
o help page for gc gives correct size of cons cells (20 bytes
for 32-bit systems, 36 or more for 64-bit systems).
o gcinfo reports correct percentages of heap even for vsize > 200M.
o gl(6,3,12) and gl(6,3,2) now both work.
o Empty lists now deparse correctly.
o na.omit.ts and na.contiguous preserve classes.
o plot.factor {plot(<factor>)} now obeys axes=FALSE and xaxt="n".
o read.table(as.is = TRUE) would leave everything as character.
Now it correctly tries to convert to numeric.
o require() now has the warn.conflicts argument of library().
o Fix problems in scan(flush = TRUE).
o scan() got confused by trailing whitespace.
o split(x,f) now works even when f is a factor with unused levels
(PR#294).
o mosaicplot() has a formula interface and
NULL instead of NA default args.
o stars() has "NULL" instead of "NA" defaults.
o str() is quite a bit nicer with factors.
o ts.union, cbind.ts, arithmetic on ts objects now allow
non-integer frequencies.
o Switch to <tt> in HTML pages since Linux Netscape mangles
Courier.
o When documentation is "compiled" (build-help), you now get warnings
for multiple (conflicting) \alias{.} or \name{.}s.
o making the reference manual with `make dvi' copes better with
isolatin1 characters (but not perfectly as these are not in
standard TeX fonts).
o Rd.sty now uses standard LaTeX constructs like \bm for bold
math and \url for URLs.
o Protect R_fopen against NULL filename in Unix.
o Math text in outer margins didn't work.
o Text clipping now works in the X11 device.
o Pixel rows sometimes got doubled in rotated text on the X11 device.
o par("yaxt") is now ok.
o Problems with realloc on some systems in AllocBuffer.
o Problem with formatReal on non-IEEE systems.
o demos/dynload/Makefile used macros that gave incorrect build
on some non-GNU makes.
o Windows version copes better with paths with spaces in.
o R CMD check had a typo which made the final message fail.
o R_EOF redefined as -1, was causing trouble with isxxxx contructions.
**************************************************
* *
* 0.65 SERIES NEWS *
* *
**************************************************
CHANGES IN R VERSION 0.65.1
NEW FEATURES
o .C, .Fortran. .Call and .External now have an argument PACKAGE
to specify the shared library to be used for the symbol. See
?Foreign. Package writers are encouraged to use this.
o On startup (unless --no-environ), first .Renviron is looked for in
the current directory, and then in $HOME/ (= ~/ ).
o New options(error.halt = FALSE) (default is TRUE) allows
continuation after an error in batch processing.
o In graphics, lty has now 6 instead of 4 predefined line types.
o as.hclust.twins() in package mva to convert (and plot)
objects from agnes() and daisy() of package cluster.
o R INSTALL now can directly install pkg_version.tar.gz files
as obtained from CRAN. New function update.packages()
& friends for automatically downloading packages from CRAN and
install them on the fly (on Unix and Windows).
o New function commandArgs() to record the command-line used.
o New arguments `local' and `now' to dyn.load.
o diag(x) now keeps names when appropriate and barfs when x is an array.
o functions source.url, url.show, read.table.url, scan.url to read
from an http server instead of a file.
o grid() gets useful defaults: grid lines drawn at tick marks.
o set operations union(), intersect(), setdiff() and is.element().
o New function stars() for star plots and segment diagrams of
multivariate data.
o Version info now in the top-level file `VERSION'.
o barplot has a "plot = TRUE" argument and now returns locations of
all bars even when "beside = TRUE".
o hist has an "nclass" argument purely for S compatibility.
o Character strings can now, with most compilers, be passed
on and from Fortran. See ?Foreign for details.
o Functions as.single and single now have the effect with
.C and .Fortran of passing a numeric argument as float/REAL
rather than as double/DOUBLE PRECISION, by setting the
attribute "Csingle". See ?Foreign for details.
o Comparison of strings uses the current locale on systems where
this is available, and so is always consistent with the ordering
used by sort().
o sapply has a new argument USE.NAMES=TRUE and now returns a named
result when its input was a character.
o plot.stepfun has new arguments lty and lwd.
o x labels in boxplot now handled differently, so that math
expressions are allowed.
o postscript() argument `onefile' now does something, and there
is a new paper type `special' and new argument `pagecentre'.
See ?postscript for details.
o Experimental function dev2bitmap() to copy to a bitmap graphics format.
BUG FIXES
o centering in text() will be more accurate, particularly on devices
with full font metric information (postscript, x11, not windows).
o arguments after --no-readline in the Unix version were ignored.
o couldn't set attributes in hashed environments.
o [<-.data.frame mishandled dfr[1] <- 1 (forgotten drop=FALSE)
o sys.on.exit didn't work
o sys.parent didn't quite work either for n >= 2.
o par("mfg") was wrong, par(mfg=) switched to down columns. Now
par(mfrow/mfcol = c(nr, nc)) followed by par(mfg=c(i,j)) is
the preferred style.
o plot( <aov.object> ) failed after 2nd plot, PR#279
o Several patches for systems with long != int.
o approx failed if inputs contained NAs.
o weighted lm fits with 1 diml x failed if any weight was zero.
o lm.influence failed when there were undetermined coefficients, PR#280.
o problem with function()... inside saved functions because arg count
increased to accommodate stored source. (Incorrect number of
arguments to "lambda")
o improvements to generation of HTML help files: should work
better on viewers other than Netscape.
o stl in package ts could conflict with package leaps: the Fortran
symbols have been changed.
o help page for factor is improved and corrected.
o na.omit.ts and na.contiguous now preserve time-series attributes.
o more automatic testing ("make check") using options(error.halt=FALSE)
led to the elimination of dozens (!) of seg.fault possibilities.
o family quasi handles zero observations with var=mu^2 more correctly.
o dynamically-loaded libraries are searched last-loaded first, as
documented (under Unix it used to be first-loaded first).
o rowsum failed with a matrix and a single group (drop=FALSE needed).
o deriv(y ~ <expr>(x)) now works as well as deriv(~ <expr>(x)).
o qr over-estimated ranks in some degenerate cases.
qr did not work correctly if n < p and the first n cols were
rank-deficient.
o str() wouldn't work quite right for named characters; doesn't quote
symbols anymore.
o Colour conversion (rgb, gray, hsv) truncated doubles and so
gave machine-dependent results on the examples. It now rounds.
o cat() now admits again that it can't handle lists instead of
"random" segfaulting.
o More accurate rounding (including rounding to even) on platforms
without rint (e.g. Windows).
o qgeom() is now left-continuous with a tolerance, and so the
example on the help page will be platform-independent.
o pretty() has been changed to use tolerance around integers and
so will be more platform-independent. The exact output has
probably changed on all platforms for some input.
o image() & filled.contour() now work for 1x1 matrices
and with constant z values.
CHANGES IN R VERSION 0.65.0
NEW FEATURES
o A first step in improving performance has been made.
Attached objects, libraries etc are now hashed; performance
gains will be particularly apparent if large packages are in use.
o First version of package ts for time-series analysis.
This has fairly complete S-PLUS compatibility, but more features
are planned. See library(help=ts) for details.
o warnings can be collected (options(warn=0), the default), printed
immediately (options(warn=1)) or turned into errors (options(warn=2)).
As a consequence, all warnings and errors now are printed followed
by a newline, if one is not supplied. (This should improve the
S compatibility of the use of PROBLEM ... in compiled code.)
o All R environment variables are now of the form `R_xxx'. In
particular, `RHOME', `RLIBS' and `RPROFILE' are now called
`R_HOME', `R_LIBS', and `R_PROFILE'.
o The handling of q()/quit()/EOF has been changed, with a new option
"default". In interactive use this asks unless --save or --no-save
has been specified: if these are specified they set the default.
o Limited capability for tilde expansion of file names even without
readline (on Unix, and on Windows).
o New environment variables `R_HISTFILE' and `R_HISTSIZE' for the
name and size of the history file.
o Attempting to restore (at startup) too large a .RData is now
a fatal error.
o The loading of shared library on Unix now uses RTLD_NOW not
RTLD_LAZY. This means that all symbols must be resolvable
when the library is loaded, and R will not terminate later
when a missing symbol is called. Code which had missing symbols
(including some packages) will need to be re-compiled.
o New generic function all.equal();
most useful for numerical comparisons `up to rounding errors'.
o New function boxplot.formula() as a formula interface to boxplots.
o New functions getwd() and setwd() for getting and setting the R
working directory, basename() and dirname() for manipulating paths.
o Function locator(, type=) is implemented to plot points or
draw lines interactively.
o Functions new.env() to create empty environment and local() to
allow local evaluation of expressions, with various useful
idiomatic uses.
o Convenience functions parent.frame() and eval.parent().
o A new scheme for keeping source code with user-defined
functions has been implemented. In particular, comments
will no longer move about or disappear. The flip side of the
coin is that you can no longer rely on R to indent your
code for you. The stored-source facility can be turned
off with options(keep.source=FALSE), and for an individual
function by deleting the "source" attribute.
If the source attribute is absent, the function will be
deparsed for editing or printing, but any comments will be
lost.
o expressions have gained semantics that are closer to
those of S. They don't get evaluated except when explicitly
specified. Example:
e <- expression(x); e[[1]] <- expression(123); eval(e)
now gives expression(123), not 123. This fixes some problems
with expressions in the list argument to do.call().
o contrast() no longer drops colnames for 1DF contrasts.
Consequentially, the labels of regression coefficients for binary
factors contain level names (again ...).
o na.omit() and na.fail() are now generic.
o plot.lm() has more options and now does 4 plots by default, should
also be okay for "glm" object; all thanks to John Maindonald.
o If the dimnames of a table are themselves named, then their names
are used to label the respective dimensions in tabular output.
o chisq.test() now optionally computes the p-value by Monte Carlo
simulation (in the standard case of a 2-d contigency table).
o source() has a new argument `chdir' for changing the working
directory to that of the file being sourced when evaluating.
o If data() loads an R source file, it now changes the working
directory (to that containing the file) when evaluating.
o Interpret strings NaN and Inf in character to numeric conversions
(and thereby in read.table)
o The presence of an object `.conflicts.OK' in a package suppresses
conflict checking in library() for that package.
o uniroot() can now be used recursively.
o hdf5{read|write} now allow more kinds of attributes and add support
for HDF5 version 1.2 (or newer) thanks to Marcus G. Daniels.
Configure checks for HDF5 1.2 availability, older versions will
no longer work.
BUG FIXES
o x ^ y gives proper results when x or y are infinite.
o The semantics of <<- have been corrected. The search for
a variable binding to modify now begins one level "up" from
the current one. Thus S and R semantics in "non-closure"
functions will be identical.
o .Last() is called when terminating with q() (not just with EOF).
o abline() now understands the "lwd" graphics parameter if it
is supplied as an inline argument.
o axis() now sorts `labels' when it sorts `at'.
o Some small changes have made in the axis drawing code to
ensure that tick-mark label alignment is correct for
non-default values of the "las" parameter.
o Improved error message from check.options().
o cm.colors(n) now doesn't append silly "v=1"; works for n=0, n=1.
o cooks.distance() now also works for "glm" objects;
deviance.lm() now ok for the case of weights.
o date() doesn't return a final "\n" (again ...).
o diag() and diag<- now handle correctly matrices with zero rows or cols.
o help([<-.factor) (etc) work again.
o is.recursive(list(.)) is now TRUE [PR#221].
o log(0) gives -Inf on all architectures.
o When persp() was the first graphics command given to R it gave
the error "plot.new() has not been called yet". This no
longer happens.
o pgamma() gave 0 or 1 for extreme arguments too soon.
o plot(<function>, log="x") doesn't give a silly warning any more.
o The internals of postscript() have been changed so that line
textures (dotted dashed etc) look better. The use of the
PostScript "initclip" operator has been removed so that we
can(?) really claim eps compliance.
o revsort() misbehaved if n<=1, causing sample(1,1,,1) to
segfault
o seq(along = v) { and seq(v) when length(v) > 1 } now returns
a result of mode "integer".
o split.default() now uses subscripting for x with a non-null
class, this preserves, e.g., the class of factors
o substr/substring(), deparse(), dput(), dump(), print()
will work for arbitrarily long strings.
o which(x) failed when x had names and contained NAs.
o Default editor files (e.g. from fix()) are now removed at termination.
o Typos in NegBinomial.Rd (Negative Binomial distrib), thanks to Ch. Gu.
o a clipping problem for plots when there non-zero outer margins
has been fixed. This problem used to affect coplot() and pairs().
o get("zzz", mode="xxx") missed promise objects.