1
1
Dear Emacs, please make this -*-Text-*- mode!
2
2
**************************************************
6
**************************************************
9
CHANGES IN R VERSION 2.8.1
14
o sum() now has a method for "difftime" objects (via the Summary
17
max(), min() and range() applied to "difftime" object(s) now
18
return a result in the common units of the objects, if there
21
o installed.packages() is now tolerant of malformed DESCRIPTION
22
files in installed packages (it ignores them, with a warning).
24
o qt() now works for 0 < df < 1.
26
o For consistency with matrix() and array(), dimnames(x) <-
27
list() removes the dimnames (as assigning NULL would do).
28
It was previously an error.
30
o nlminb() copies names from 'start' to the parameter vector
31
used (for consistency with optim()).
33
o legend() gains a 'title.col' argument: the title colour was
34
previously set from the first element of 'text.col' (which
37
o In an Rd file, use of top-level \itemize{} inside a \value{}
38
block is unnecessary and almost always gave a faulty
39
conversion. Most cases are now detected and corrected, but
40
give a warning as such code will not work correctly in earlier
43
Also, use of \code{} inside a code block such as \examples{}
44
will give a erroneous conversion that is now detected and
47
o Autoflushing of stdout is turned on when Rd processing, so
48
warnings/error are likely to appear in the right place in
49
redirected output (such as that from R CMD check).
54
o R_PDFLATEXCMD is added to the environment variables set by
55
'R CMD' and is used by R CMD Rd2dvi.
57
R_LATEXCMD, R_PDFLATEXCMD, R_MAKEINDEXCMD and R_DVIPSCMD
58
default to 'latex', 'pdflatex', 'makeindex' and 'dvips'
59
respectively if no suitable executable was found at configure
60
time (since they might well be available at run time,
61
particularly for binary installations of R). This affects
62
R CMD Rd2dvi and help(offline=TRUE).
64
R CMD Rd2dvi now gives an explicit error message if latex (or
67
R CMD Rd2dvi gains a --no-index argument: processing some
68
special characters on PDF indices gave errors which used to be
74
o R CMD INSTALL --with-package-versions is deprecated (and
75
support has always been incomplete on Windows).
77
So is install.packages(installWithVers = TRUE).
79
o Rd conversion to Sd and Ssgm is now deprecated as we no longer
80
have any means to check the results (and Sd is long obsolete).
85
o add1.glm() no longer warns if applied to a binomial glm with a
88
o aggregate.data.frame() now does something sensible with a
89
zero-column 'x' rather than failing with an obscure error
90
message. It gives an explicit error message if called with a
93
o integrate() now accepts integer results from f(): as documented,
94
but only double was accepted.
96
o contrib.url() produced an incorrect URL for the type
99
o pairwise.wilcox.test() did not pass on the 'paired' argument
100
(caught by Matthias Kohl)
102
o bmp(), jpeg(), and png() on unix with type="cairo" would segfault
103
on closure if the output file could not be opened.
105
o tiff() on unix would not write the output file for the first page
106
when multiple pages were plotted.
108
o str(1 + structure(1, class = "test")) no longer recurses indefinitely.
110
o pf(x, .., ncp, lower.tail=FALSE, log=TRUE) is much more accurate
113
o dev2bitmap() failed in 2.8.0 if 'taa' and 'gaa' were both NA.
115
o Under rare circumstances equality tests for character strings
116
could fail to report equality in 2.8.0 in the same way as
117
2.7.2. (This needed a current encoding of Latin-1 or UTF-8,
118
one string whose encoding was marked as that encoding and one
119
that was marked as "unknown". In that circumstance the two
120
strings are not actually known to be equal, but earlier
121
versions of R assumed that "unknown" meant the current
122
encoding, and this is done once again.)
124
o R CMD config could echo messages from GNU make if called from
125
within a Makefile (as e.g. package Rcpp did), especially from
126
within a parallel make run.
128
o Rounding error could affect window(extend=TRUE) when applied
129
to monthly series. (PR#13272)
131
o Offline help on a Unix-alike now works even if options
132
"latexcmd" and "dvipscmd" contain spaces
133
(e.g. "dvips -Pmy_printer").
135
Informative error messages are given if running latex or dvips
138
o Using plot.lm() on a "glm" object since 2.7.1 with which=5
139
caused the Pearson rather than deviance residuals to be used
140
in which=2 or 3 (including in the default case). (Thanks to
141
Effie Greathouse and Greg Snow.)
143
plot.lm() did not report on omitting observations with
144
leverage one if they also had residual exactly zero. This was
145
seen in example(occupationalStatus).
147
o deparse(nlines=) no longer pads short results with blank
150
o legend(xpd=) now restores 'xpd' correctly. (PR#12756)
152
o The "formula" method for lines() now works if 'subset' is
153
supplied and no 'data' argument (as that for points() did).
155
o Sweave() now takes the defaults for the options 'pdf.version'
156
and 'pdf.encoding' of its RweaveLatex driver from pdf.options().
158
o prettyNum(x, drop0trailing=TRUE) treated "1.1e20" as "1.1e2"
159
and hence str() did as well, in 2.8.0 only.
161
o dchisq(x, df, ncp) no longer hangs for large x and ncp > 0,
162
and is more accurate in some cases (PR#13309).
164
o installed.packages(lib.loc = D, priority="NA") now also works when
165
D contains a single package. (PR#13332)
167
o legend(...., merge=TRUE) now warns and has no effect in the
168
case where no line segments are drawn. (PR#13340)
170
o transform.data.frame() works better when two or more columns are
173
o Deparsing argument lists with non-syntactic names (e.g. that for
174
transform()) now uses backticks rather than double quotes to
175
produce syntactically valid output.
177
o matrix() failed to check for 0-length 'dimnames': it now
178
treats them as NULL (as array did). (PR#13361)
180
o 0^NA is now NA, not Inf, consistent with x^NA, x != 1.
182
o anova.mlm() did not work if T had only one row (including
183
e.g. the case M = ~1).
185
o axis.POSIXct() mislabelled for some time ranges of a few hours
186
(reported by Martin Becker).
188
o mantelhaen.test() with 'exact=FALSE' was not respecting
189
'alternative'. It now does one-sided tests similarly to
192
o anova.mlm() had trouble with some designs where near-zero rows of
193
the tranformation matrix were not removed (caught by Nils Skutara).
195
o Rd conversion was handling expressions like
196
'\item{foo}{see \eqn{x}}' (with one argument to \eqn
197
immediately followed by a right brace) incorrectly, sometimes
198
giving a spurious warning about 'missing text'.
200
o R CMD INSTALL used the C locale to install the DESCRIPTION
201
file, and so escaped non-ASCII characters in packages with a
202
declared encoding of "latin1" or "UTF-8". (However, the
203
installed DESCRIPTION file was rarely used since the dumped
204
metadata are available.)
206
o xspline() now respects inline par settings.
208
It and grid.xspline() now handle the special case of only two
209
control points, and splines with control points that are
210
located well outside the device (e.g., a zoomed view of a
211
larger curve). (Both cases were giving the error "reached
214
o In setClass("C", contains="list"); x <- new("C", 1:3), x[2:3] now
215
remains of class "C". So does rep(x, 2) or rep.int(x, 3).
217
o median.default() now also works for "numeric"-like vectors.
219
o The pdf() device can now handle the case where an image uses a
220
very large number of colours with different levels of
221
semi-transparency (alpha-values). It used to segfault.
224
o window() failed to apply a fuzz to 'start' or 'end' and so
225
sometimes warned incorrectly for time series with 'freq' not a
226
power of two (e.g. 12 or 24).
228
o unique.default() now preserves the "tzone" attribute on
231
o If all the packages had dependency lists of equal lengths,
232
occasionally install.packages() would compute an incorrect
235
o col(x, as.factor=TRUE) and row(x, as.factor=TRUE) would fail
236
if x had no column (row) names. It was documented
237
incorrectly, and now returns a matrix factor.
239
o setRepositories() failed if "pkgType" was set to
240
"mac.binary.leopard".
242
o formals<-() changed the body of the function if this was a
245
o body<-() failed if the function had no arguments. It now
246
warns if discarding elements from a 'value' of type "expression".
248
o qr.coef() failed in the complex case for non-square systems.
251
o plot.dendrogram(horizontal=TRUE) did not not plot 'edgetext'
252
at the correct locations. (PR#13313)
254
o The starting point for plot.acf(ci.type="ma") was lag 0 when it
255
should have been lag 1. (PR#13071)
257
o There was an obscure bug with srcrefs, which could put the
258
parser into a condition giving "Error: bad value" on any input
262
CHANGES IN R VERSION 2.8.0
265
SIGNIFICANT USER-VISIBLE CHANGES
267
o var(), cov(), cor(), sd() etc now by default (when 'use' is not
268
specified) return NA in many cases where they signalled an
274
o abbreviate() gains an optional argument 'strict' allowing cheap
275
and fast strict abbrevation.
277
o The "lm" methods of add1(), anova() and drop1() warn if they are
278
mis-used on an essentially exact fit.
280
o as.array() is now generic, gains a '...' argument.
282
o New function as.hexmode() for converting integers in hex format.
283
format.hexmode() and as.character.hexmode() gain an 'upper.case'
286
o bitmap() and dev2bitmap() gain support for anti-aliasing.
287
The default type has been changed to 'png16m', which supports
290
o Box.test() gains a 'fitdf' argument to adjust the degrees of
291
freedom if applied to residuals.
293
o browseURL() has a new argument 'encodeIfNeeded' to use
294
URLencode() in cases where it seems likely that would be
295
helpful. (Unfortunately, those are hard to guess.)
297
o by() gains a 'simplify' argument, passed to tapply().
299
o capabilities() gains a new argument "tiff" to report if tiff()
302
o chol2inv() now treats <numeric(1)> as a [1 x 1]-matrix.
304
o cov() and cor() have the option 'use = "everything"' as default,
305
and so does var() with its default 'na.rm = FALSE'. This
306
returns NA instead of signalling an error for NA observations.
307
Another new option is 'use = "na.or.complete"' which is the default
308
for var(*, na.rm=FALSE).
309
var(double(0), na.rm= L) now returns NA instead of signalling an error,
310
for both L = TRUE or FALSE, as one consequence of these changes.
312
o data.matrix() now tries harder to convert non-numeric columns,
313
via as.numeric() or as(, "numeric").
315
o dev.interactive() is able to recognize the standard screen
316
devices if getOption("device") is a function (as well as by name).
318
o dev.new() gains a '...' argument which can be used to pass
319
named arguments which will be used if appropriate to the
322
o dimnames(x) <- value extends 'value' if it a list and too
323
short, and 'x' is an array. This allows constructions such as
324
dimnames(x)[[1]] <- 1:3 to work whether or not 'x' already has
327
o format(), formatC() and prettyNum() gain a new argument
328
'drop0trailing' which can be used to suppress trailing "0"s.
330
o format() now works for environments; also print(env) and str(env)
331
share the same code for environments.
333
o It is now possible to create and open a text-mode gzfile()
334
connection by explicitly using e.g. open="rt".
336
o New help.request() function for compiling an e-mail to R-help
337
according to "the rules". It is built on the new utility,
338
create.post() on which also bug.report() is based now; both
339
thanks to a contribution by Heather Turner.
341
o help.search() now assumes that non-ASCII items are in latin1
342
if that makes sense (all known examples on CRAN are).
344
o HoltWinters() and decompose() use a (statistically) more
345
efficient computation for seasonal fits (they used to waste
348
o intToUtf8() and intToBits() now accept numeric vectors,
349
truncating them to integers.
351
o is.unsorted() gains an argument 'strictly'. It now works for
352
classed objects with a >= or > method (as incorrectly
355
o library() no longer warns about the masking objects that are
356
identical(.,.) to those they mask.
358
o lockBinding(), unlockBinding(), lockEnvironment() and
359
makeActiveBinding() now all return invisibly (they always
362
o mood.test() now behaves better in the presence of ties.
364
o na.action() now works on fits of classes "lm", "glm", ....
366
o optim(.., method="SANN", .., trace=TRUE) is now customizable via
367
the 'REPORT' control argument, thanks to code proposals by
370
o The 'factory-fresh' defaults for options("device") have been
371
changed to refer to the devices as functions in the grDevices
372
namespace and not as names. This makes it more likely that
373
the incorrect (since R 2.5.0) assumption in packages that
374
get(getOption("device"))() will work will catch users of those
377
o pch=16 now has no border (for consistency with 15, 17, 18) and
378
hence is now different from pch=19.
380
o pdf() has new arguments 'useDingbats' (set this to FALSE for use
381
with broken viewers) and 'colormodel'. It now only references
382
the ZapfDingbats font if it is used (for small opaque circles).
384
The default PDF version is now 1.4, since viewers that do not
385
accept that are now rare.
387
Different viewers were rendering consecutive text() calls on a
388
pdf() device in different ways where translucency was
389
involved. The PDF generated has been changed to force each
390
call to be rendered separately (which is the way xpdf or
391
ghostscript was rendering, but Acrobat was forming a
392
transparency group), which is consistent with other graphics
393
devices supporting semi-transparency.
395
o plot.dendrogram() has new arguments (xlim, ylim) which allows
396
zooming into a hiearchical clustering dendrogram.
398
o plot.ecdf() now defaults to pch=19 so as to better convey the
399
left-closed line segments.
401
o plot.histogram() gains an 'ann' argument. (Wish from Ben Bolker.)
403
o plot(<lm_obj>) now warns when it omits points with leverage one
406
o Plotmath now recognizes 'aleph' and 'nabla' (the Adobe Symbol
407
'gradient' glyph) as symbol names.
409
o polyroot() no longer has a maximum degree.
411
o The alpha/alphamax argument of the 'nls' and 'mle' profile()
412
methods is used to compute confidence limits for univariate
413
t-statistics rather than a confidence region for all the
414
parameters (and not just those being profiled).
416
o quantile.default() allows 'probs' to stray just beyond [0, 1],
417
to allow for computed values.
419
o New functions rawConnection() and rawConnectionValue() allow
420
raw vectors to be treated as connections.
422
o read.dcf() now consistently gives an error for malformed DCF.
424
o read.fwf() no longer passes its default for 'as.is' to
425
read.table(): this allows the latter's default to be used.
427
o readBin(), writeBin(), readChar() and writeChar() now open a
428
connection which was not already open in an appropriate binary
429
mode rather than the default mode.
431
readLines(), cat() and sink() now open a connection which was
432
not already open in an appropriate text mode rather than the
435
o readCitationFile() (and hence citation) now reads a package's
436
CITATION file in the package's declared encoding (if there is one).
438
o The behaviour of readLines() for incomplete final lines on
439
binary-mode connections has been changed to be like blocking
440
rather than non-blocking text-mode connections.
442
o A new reorder.character() method has been added. This allows
443
use of 'reorder(x, ...)' as a shorthand for
444
'reorder(factor(x), ...)' when 'x' is a character vector.
446
o round() now computes in long doubles where possible so the
447
results are more likely to be correct to representation error.
449
o rug() now uses axis()'s new arguments from 2.7.2, hence no
450
longer draws an axis line.
452
o save() (optionally, but by default) checks for the existence
453
of objects before opening the file/connection (wish of
456
o segments(), arrows() and rect() allow zero-length
457
coordinates. (Wish of PR#11192)
459
o set.seed(kind=NULL) now takes 'kind' from a saved seed if the
460
workspace has been restored or .Random.seed has been set in
461
some other way. Previously it took the 'currently used' value,
462
which was "default" unless random numbers had been used in
463
the current session. Similarly for the values reported by
464
RNGkind(). (Related to PR#12567.)
466
set.seed() gains a 'normal.kind' argument.
468
o setEPS() and setPS() gain '...' to allow other arguments to be
469
passed to ps.options(), including overriding 'width' and 'height'.
471
o setTimeLimit() function to set limits on the CPU
472
and/or elapsed time for each top-level computation, and
473
setSessionLimit() to set limits for the rest of the session.
475
o splinefun() has a new method = "monoH.FC" for monotone Hermite
476
spline interpolation.
478
o sprintf() optionally supports the %a/%A notation of C99 (if the
479
platform does, including under Windows).
481
o str()'s default method gains a 'formatNum' function argument which
482
is used for formatting numeric vectors. Note that this is very
483
slightly not backward compatible.
485
o The summary() method for class "ecdf" now uses a print()
486
method rather than printing directly.
488
o summary.manova() uses a stabler computation of the test
489
statistics, and gains a 'tol' argument to allow highly
490
correlated responses to be explored (with probable loss of
491
accuracy). Similar changes have been made to anova.mlm() and
494
o Sweave() now writes concordance information inside a
495
\Sconcordance LaTeX macro, which allows it to be inserted into
498
o system.time() now uses lazy evaluation rather than
499
eval/substitute, which results in more natural scoping. (PR#11169)
501
o In table(), 'exclude=NULL' now does something also for factor
502
arguments. A new 'useNA' argument allows you to control
503
whether to add NA levels unconditionally or only when present
504
in data. A new convenience function addNA() gives similar
505
functionality by adding NA levels to individual factors.
507
o unlink() tries the literal pattern if it does not match with
508
wildcards interpreted -- this helps with e.g. unlink("a[b")
509
which previously needed to be unlink("a\\[b").
511
o update.packages() gains an argument 'oldPkgs', where
512
new.packages() and old.packages() get 'instPkgs'. These allow
513
consideration of only subsets of packages instead of all
516
o which(b) is somewhat faster now, notably for named vectors, thanks
517
to a suggestion by Henrik Bengtsson.
519
o New generic function xtfrm() as an auxiliary helper for
520
sort(), order() and rank(). This should return a numeric
521
vector that sorts in the same way as its input. The default
522
method supports any class with ==, > and is.na() methods but
523
specific methods can be much faster.
525
As a side-effect, rank() will now work better on classed
526
objects, although possibly rather slowly.
528
o X11() and capabilities("X11") now catch some X11 I/O errors that
529
previously terminated R. These were rare and have only be
530
seen with a misconfigured X11 setup on some versions of X11.
533
o The handling of nuls in character strings has been changed --
534
they are no longer allowed, and attempting to create such a
535
string now gives a truncation warning (unless
536
options("warnEscapes") is false).
538
o The user environment and profile files can now be specified via
539
environment variables 'R_ENVIRON_USER' and 'R_PROFILE_USER',
542
o ?pkg::topic and ?pkg:::topic now find help on 'topic' from
543
package 'pkg' (and not help on :: or :::).
545
o ??topic now does help.search("topic"); variations such as
546
??pkg::topic or field??topic are also supported.
548
o There is support for using ICU (International Components for
549
Unicode) for collation, enabled by configure option --with-ICU
550
on a Unix-alike and by a setting in MkRules on Windows.
551
Function icuSetCollate() allows the collation rules (including
552
the locale) to be tuned. [Experimental]
554
o If S4 method dispatch is on and S4 objects are found as
555
attributes, show() rather than print() is used to print the
558
o Starting package tcltk without access to Tk (e.g. no available
559
display) is now a warning rather than an error, as Tcl
560
will still be usable. (On most platforms it was possible to
561
inhibit Tk by not having DISPLAY set, but not on Windows nor
562
Mac OS X builds with --with-aqua.)
564
o Using $ on a non-subsettable object (such as a function) is
565
now an error (rather than returning NULL).
567
o Hexadecimal numerical constants (such as 0xab.cdp+12) may now
568
contain a decimal point.
570
o PCRE has been updated to version 7.8 (mainly bug fixes).
573
NEW FEATURES IN PACKAGE 'methods'
575
o S3 classes that are registered by a call to setOldClass() now
576
have the S3 class as a special slot, and therefore so do
577
any S4 classes that contain them. This mechanism is used to
578
support S4 classes that extend S3 classes, to the extent
579
possible. See ?Classes, ?setOldClass, and ?S3Class.
581
The treatment of special pseudo-classes "matrix", "array", and
582
"ts" as S4 classes has also been modified to be more
583
consistent and, within limitations imposed by special
584
treatment of these objects in the base code, to allow other
585
classes to contain them. See class?ts.
587
A general feature added to implement "ts" and also
588
"data.frame" as S4 classes is that an S4 class definition can
589
be supplied to setOldClass() when the S3 class has known
590
attributes of known class.
592
setOldClass() now saves all the S3 inheritance, allowing the
593
calls to be built up in stages, rather than including all the
594
S3 classes in each call. Also allows as(x,"S3") to generate
595
valid S3 inheritance from the stored definition. See ?S3.
597
o S4 methods may now be defined corresponding to "...", by
598
creating a generic function that has "..." as its signature.
599
A method will be selected and called if all the arguments
600
matching "..." are from this class or a subclass. See ?dotsMethods.
602
o New functions S3Part() and S3Class() provide access to the
603
corresponding S3 object and class for S4 classes that extend
604
either an S3 class or a basic R object type.
606
o show(<class definition>) now also shows the class name.
611
o If sub-architectures are used, a copy of Rscript is installed
612
in ${R_HOME}/bin/exec${R_ARCH} (since that in ${R_HOME}/bin
613
and /usr/bin might be overwritten in a subsequent installation).
618
o LazyLoad: yes is now the default, so packages wanting to avoid
619
lazy loading must set 'LazyLoad: no' (or an equivalent value) in
620
the DESCRIPTION file.
622
o R CMD INSTALL will now fail if it finds a non-executable
623
'configure' script in the package -- this usually indicates a
624
file system with insufficient permissions. If a
625
non-executable 'cleanup' script is found and either
626
--clean or --preclean is used, a warning is given.
631
o Use in packages of the graphics headers Rdevices.h and
632
Rgraphics.h is defunct: they are no longer installed.
634
o options("par.ask.default") is defunct in favour of
635
"device.ask.default".
637
o The 'device-independent' family "symbol" is defunct: use
638
font=5 (base) or fontface=5 (grid) instead.
640
o gammaCody() is defunct.
642
o par("gamma") is defunct.
644
o 'methods' package functions getAccess(), getAllMethods(),
645
getClassName(), getClassPackage(), getExtends(),
646
getProperties(), getPrototype(), getSubclasses, getVirtual(),
647
mlistMetaName(), removeMethodsObject() and seemsS4Object() are
650
o Use of a non-integer .Random.seed is now an error. (R itself
651
has never generated such values, but user code has, and
652
R >= 2.6.0 has given a warning.)
654
o methods::allGenerics() is deprecated.
656
o In package installation, SaveImage: yes is now ignored, and
657
any use of the field will give a warning.
659
o unserialize() no longer accepts character strings as input.
661
o The C macro 'allocString' has been removed -- use 'mkChar' and
664
o Use of allocVector(CHARSXP ...) is deprecated and gives a warning.
669
o The default for 'stylepath' in Sweave's (default) RweaveLatex
670
driver is now FALSE rather than TRUE if
671
SWEAVE_STYLEPATH_DEFAULT is unset : see ?RweaveLatex.
672
To support this, tools::texi2dvi adds the R 'texmf' directory
673
to the input search path.
675
o R CMD Rd2dvi now previews PDF output (as was documented) if
676
R_PDFVIEWER is set (as it will normally be on a Unix-alike but
677
not on Windows, where the file association is used by default).
679
o R CMD check checks for binary executable files (which should not
680
appear in a source package), using a suitable 'file' if
681
available, else by name.
683
o R CMD check now also uses codetools' checks on the body of S4
689
o R_ReadConsole will now be called with a buffer size of 4096
690
bytes (rather than 1024): maintainers of alternative
691
front-ends should check that they do not have a smaller limit.
693
o Graphics structure NewDevDesc has been renamed to DevDesc.
694
For now there is a compatibility define in GraphicsDevice.h,
695
but it will be removed in R 2.9.0.
697
o PROTECT and UNPROTECT macros now work even with R_NO_REMAP.
702
o @ now gives an error (and not just a warning) if it is being
703
applied to a non-S4 object.
705
o R CMD appends (not prepends) R's texmf path to TEXINPUTS.
707
o Objects generated by new() from S4 classes should now all
708
satisfy isS4(object). Previously, prototypes not of object
709
type S4 would not be S4 objects. new() applied to basic,
710
non-S4 classes still will (and should) return non-S4 objects.
712
o Functions writing to connections such as writeLines(),
713
writeBin(), writeChar(), save(), dput() and dump() now check
714
more carefully that the connections are opened for writing,
715
including connections that they open themselves.
717
Similarly functions which read such as readLines(), scan(),
718
dcf() and parse() check connections for being open for reading.
720
o Equality comparison of factors with <NA> levels now works
723
o Repainting of open X11 View() windows is now done whilst an
724
X11 dataentry window is in use.
726
o Indexing of data frames with NA column names and a numeric or
727
logical column index works again even if columns with NA names
730
o on.exit() has been fixed to use lexical scope in determining
731
where to evaluate the exit action when the on.exit expression
732
appears in a function argument.
734
o rank() now consistently returns a double result for
735
ties.method = "average" and an integer result otherwise.
736
Previously the storage mode depended on 'na.last' and if any
739
o The "lm" methods of add1(), and drop1() now also work on a model
740
fit with na.action = na.exclude.
742
o median(c(x = NA_real_)) no longer has spurious names().
744
o isoreg(x, y) now returns the correct result also when x has ties,
747
o What na.action() does is now correctly documented.
749
o source() with echo=TRUE now behaves like ordinary automatic
750
printing, by using methods::show() for S4 objects.
752
o Several bugs fixed in `?` with topics: it previously died trying
753
to construct some error messages; for S4 methods, class "ANY"
754
should be used for omitted arguments and default methods.
756
o trace() should create missing traceable classes in the global
757
environment, not in baseenv() where other classes will not be
760
o Class inheritance using explicit coerce= methods via setIs()
761
failed to coerce the argument in method dispatch. With this
762
fixed, a mechanism was needed to prohibit such inheritance
763
when it would break the generic function (e.g.,
764
initialize). See ?setIs and ?setGeneric.
766
o RSiteSearch() encodes its query (it seems this is occasionally
767
needed on some platforms, but encoding other fields is harmful).
769
o 'incomparables' in match() was looking up indices in the wrong
772
o write.dcf() did not escape "." according to Debian policy
775
o col2rgb() sometimes opened a graphics device unnecessarily, and
776
col2rgb(NA) did not return a transparent color, as documented.
778
o pdf(family="Japan") [and other CIDfonts] no longer seg.faults
779
when writing "western" text strings.
781
o as.list() applied to an environment now forces promises and
784
o Promises capturing calls to sys.parent() and friends did not
785
work properly when evaluated via method dispatch for internal
788
o The default "pkgType" option for non-CRAN builds of R on Mac OS X
789
is now correctly "source" as documented.
791
o The default R_LIBS_USER path in AQUA builds now matches the
792
Mac-specifc path used by the Mac GUI: ~/Library/R/x.y/library
794
o splinefun() with natural splines incorrectly evaluated derivatives
795
to the left of the first knot. (PR#13132, fix thanks to
798
o anova(glm(..., y=FALSE)) now works. (PR#13098)
800
o cut.Date(x, "weeks") could fail if x has only one unique value
801
which fell on a week boundary. (PR#13159)
806
**************************************************
4
808
* 2.7 SERIES NEWS *
6
810
**************************************************
814
CHANGES IN R VERSION 2.7.2 patched
819
o within(<dataframe>, { ... }) now also works when '...' removes
820
more than one column.
822
o Attempting to open an X11() device on a non-existent display
823
when one is already open on another display now gives a
824
warning rather than terminating R via a fatal X11 error.
827
o source() did not respect the setting of options("keep.source")
828
when setting source references.
830
o seek() now clears the pushback on a text-mode connection if
831
used to set a new position. (PR#12640)
833
o quartz() would segfault if asked to create a file for bitmap
834
output which could not be created. This applied also to the
835
type="quartz" versions of bmp(), jpeg(), png() and tiff().
837
o dnbinom(0, size, mu = <large>) suffered from cancellation in 2.7.2
842
CHANGES IN R VERSION 2.7.2
847
o sprintf() returns elements of the result in UTF-8 when the
848
format or any character input has a corresponding element
849
declared as UTF-8. Similarly for paste(), elements of the
850
result are in UTF-8 when any input to that element is declared
853
o axis() has new arguments 'col.ticks' and 'lwd.ticks' to allow
854
the colour and line width of ticks to be set separately from
855
that of the line (e.g. to set one or the other to transparent
858
o legend() has a new argument 'box.col' to set the colour of the
861
o legend() gains a 'xpd' argument to make it easier to place a
862
legend in the margins or outer margins.
864
o stripchart() now passes '...' to title() (as well as to
865
plot.default() and axis()). (Wish of PR#12202)
867
o help.search() has new argument 'searchEngine' to go
868
directly to the search form: this is needed by users of
869
Firefox 3 to workaround a bug in interpreting the search
875
o Plotmath computed the glyph metrics for the wrong character (and
876
perhaps for a non-existent one) if this was a single-byte
877
character with the top bit set. An example was symbol("\300").
879
o sink() and cat() could divert output to a non-writable connection.
881
o phyper(x, 0,0,0) no longer hangs for huge x and gives 1 for x >= 0.
884
o plnorm(x, ..., log.p=TRUE) is now correct for x <= 0. (PR#11867)
886
o <data.frame>[, ch] gives an error (again!) when ch is a string not
887
exactly matching the column names, thanks to an oral bug report by
890
o data.frame(x=1:2, y=3:4, row.names=c("a","NA"))[c(2,NA),] has
891
correct row names c("NA,"NA.1") again.
893
o The GUI data editor for dataframes did not handle escape
894
characters in entries properly. (PR#11897)
896
o PCRE has been updated to 7.7 (bugfix release).
898
o package.skeleton() wrongly warned about invalid code_files names
899
when these were not in the current directory.
901
o shapiro.test(c(0,0,1)) now has P value >= 0 (instead of barely
904
o assign() now warns if given a character vector of length > 1,
905
rather than silently taking the first element.
907
o rcond(<exactly singular matrix>) now gives 0 instead of an error.
909
o There was a memory leak in C function ucstoutf8 used by some
912
o Plots of profile.mle() objects (package 'stats4') were
913
misbehaving when the 'which' argument had been used in their
916
o dnbinom(x, size, mu=*, ..) is now more accurate for very large
917
'size'. The same applies to pnbinom() and rnbinom().
919
o axis() was ignoring par() mgp[3] if mgp was set in-line.
921
o Closing an X11 View() or dataentry window via its frame's
922
close control now works better on some window managers.
924
o Calling lapply() was not handling method dispatch correctly for
925
is.numeric(), is.matrix(), is.array(), log() and the Math2
926
group. This affected data.matrix() which incorrectly regarded
927
"Date" and "POSIXct" objects as numeric, and has been adjusted
928
to do so as exceptions.
930
o package.skeleton() was not looking for non-function objects in
931
its 'environment' argument.
933
o nls() was only finding its 'weights' argument in the case when
934
all the variables in the formula were of the same length and
935
hence that model.frame() could be used.
937
It was silently ignoring 'subset' and 'na.action' except in
938
that case. Now they are ignored only if 'data' is a list and
939
variables taken from 'data' are not all of the same length,
940
in which case a warning is given.
942
o The 'mle' confint() method now takes 'level' into account when
943
setting 'alpha' for the profile.
945
o within() was not handling correctly expressions that produced
946
NULL columns. (PR#11131)
948
o dev.print() and dev.copy2{eps,pdf}() now ensure that the current
949
device is restored as the active device even if an error
952
o as.Date() could fail to convert character strings representing
953
days on which midnight did not exist in the current timezone
954
(as happened in parts of Africa on 1960-01-01).
956
o The automatic placement of legend() with 'title' and a
957
reversed 'x' axis was incorrect. (PR#12019)
959
o The use of multiple packages in 'LinkingTo' works again, and
960
now works when the dependent packages are in the library to be
961
installed to (but not in the library path seen by R --vanilla).
963
o bxp() (and hence boxplot) now respects in-line graphical
964
parameters 'xaxp'/'yaxp' as appropriate. (PR#11463)
966
o barplot(log = "y") failed if there were NAs in the 'height'
969
o pbeta() is more accurate in some cases with extreme values of
972
o edit.data.frame() no longer fails if called on a 0-column
973
data frame and no column is created.
975
o pchisq(x, df=0) was always one even for x < 0; similarly for
978
o add1() and drop1() now return a P-value of NaN in cases with
979
df=0 for test="Chisq" (they gave NaN until pchisq was altered
982
o The default methods of drop1() and add1() now re-evaluate in the
983
object's formula environment, rather than simply in the parent
984
(informal bug report by Werner Stahel).
986
o The undocumented limit of 8191 bytes on comments (from # to
987
the end of the line) in R code has been removed.
989
o qgamma() warns if used with shape < 1e-10, when it may be
990
unreliable. (PR#12324)
992
o Installing a source package was not using the package's declared
993
encoding (if any) as a default encoding for the help.search()
994
database in Meta/hsearch.rds. This could cause packages with
995
a default encoding to have some of their entries rejected by
996
help.search() in a multi-byte locale (such as a UTF-8 locale).
998
o duplicated() and unique() now handle 'incomparables' better,
999
and avoid occasional segfaults (PR#12551).
1001
o plot(isoreg(x, y)) now plots the points correctly when 'x'
1004
o data.frame(row.names=NULL) once again behaves differently from
1005
the default (as documented).
9
1009
CHANGES IN R VERSION 2.7.1