~showard314/ubuntu/karmic/r-base/remove_start_comments

« back to all changes in this revision

Viewing changes to NEWS

  • Committer: Bazaar Package Importer
  • Author(s): Dirk Eddelbuettel
  • Date: 2009-01-19 12:40:24 UTC
  • mfrom: (5.1.4 sid)
  • Revision ID: james.westby@ubuntu.com-20090119124024-abxsf4e0y7713w9m
Tags: 2.8.1-2
debian/control: Add another Build-Depends: exclusion for the 
'kfreebsd-i386 kfreebsd-amd64 hurd-i386' architecture to openjdk-6-jdk.
Thanks to Petr Salinger for the heads-up.               (Closes: 512324)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
                        Dear Emacs, please make this -*-Text-*- mode!
2
2
        **************************************************
3
3
        *                                                *
 
4
        *              2.8 SERIES NEWS                   *
 
5
        *                                                *
 
6
        **************************************************
 
7
 
 
8
 
 
9
                CHANGES IN R VERSION 2.8.1
 
10
 
 
11
 
 
12
NEW FEATURES
 
13
 
 
14
    o   sum() now has a method for "difftime" objects (via the Summary
 
15
        group).
 
16
 
 
17
        max(), min() and range() applied to "difftime" object(s) now
 
18
        return a result in the common units of the objects, if there
 
19
        is one.
 
20
 
 
21
    o   installed.packages() is now tolerant of malformed DESCRIPTION
 
22
        files in installed packages (it ignores them, with a warning).
 
23
 
 
24
    o   qt() now works for 0 < df < 1.
 
25
 
 
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.
 
29
 
 
30
    o   nlminb() copies names from 'start' to the parameter vector
 
31
        used (for consistency with optim()).
 
32
 
 
33
    o   legend() gains a 'title.col' argument: the title colour was
 
34
        previously set from the first element of 'text.col' (which
 
35
        remains the default).
 
36
 
 
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
 
41
        versins of R.
 
42
 
 
43
        Also, use of \code{} inside a code block such as \examples{}
 
44
        will give a erroneous conversion that is now detected and
 
45
        warned against.
 
46
 
 
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).
 
50
 
 
51
 
 
52
UTILITIES
 
53
 
 
54
    o   R_PDFLATEXCMD is added to the environment variables set by
 
55
        'R CMD' and is used by R CMD Rd2dvi.
 
56
 
 
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).
 
63
 
 
64
        R CMD Rd2dvi now gives an explicit error message if latex (or
 
65
        pdflatex) fails.
 
66
 
 
67
        R CMD Rd2dvi gains a --no-index argument: processing some
 
68
        special characters on PDF indices gave errors which used to be
 
69
        ignored.
 
70
 
 
71
 
 
72
DEPRECATED & DEFUNCT
 
73
 
 
74
    o   R CMD INSTALL --with-package-versions is deprecated (and
 
75
        support has always been incomplete on Windows).
 
76
 
 
77
        So is install.packages(installWithVers = TRUE).
 
78
 
 
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).
 
81
 
 
82
 
 
83
BUG FIXES
 
84
 
 
85
    o   add1.glm() no longer warns if applied to a binomial glm with a
 
86
        factor response.
 
87
 
 
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
 
91
        zero-row 'x'.
 
92
 
 
93
    o   integrate() now accepts integer results from f(): as documented,
 
94
        but only double was accepted.
 
95
 
 
96
    o   contrib.url() produced an incorrect URL for the type
 
97
        "mac.binary".
 
98
 
 
99
    o   pairwise.wilcox.test() did not pass on the 'paired' argument
 
100
        (caught by Matthias Kohl)
 
101
 
 
102
    o   bmp(), jpeg(), and png() on unix with type="cairo" would segfault
 
103
        on closure if the output file could not be opened.
 
104
 
 
105
    o   tiff() on unix would not write the output file for the first page
 
106
        when multiple pages were plotted.
 
107
 
 
108
    o   str(1 + structure(1, class = "test")) no longer recurses indefinitely.
 
109
 
 
110
    o   pf(x, .., ncp, lower.tail=FALSE, log=TRUE) is much more accurate
 
111
        for large x now.
 
112
 
 
113
    o   dev2bitmap() failed in 2.8.0 if 'taa' and 'gaa' were both NA.
 
114
 
 
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.)
 
123
 
 
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.
 
127
 
 
128
    o   Rounding error could affect window(extend=TRUE) when applied
 
129
        to monthly series.  (PR#13272)
 
130
 
 
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").
 
134
 
 
135
        Informative error messages are given if running latex or dvips
 
136
        fail.
 
137
 
 
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.)
 
142
 
 
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).
 
146
 
 
147
    o   deparse(nlines=) no longer pads short results with blank
 
148
        lines. (PR#13299)
 
149
 
 
150
    o   legend(xpd=) now restores 'xpd' correctly.  (PR#12756)
 
151
 
 
152
    o   The "formula" method for lines() now works if 'subset' is
 
153
        supplied and no 'data' argument (as that for points() did).
 
154
 
 
155
    o   Sweave() now takes the defaults for the options 'pdf.version'
 
156
        and 'pdf.encoding' of its RweaveLatex driver from pdf.options().
 
157
 
 
158
    o   prettyNum(x, drop0trailing=TRUE) treated "1.1e20" as "1.1e2"
 
159
        and hence str() did as well, in 2.8.0 only.
 
160
 
 
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).
 
163
 
 
164
    o   installed.packages(lib.loc = D, priority="NA") now also works when
 
165
        D contains a single package.  (PR#13332)
 
166
 
 
167
    o   legend(...., merge=TRUE) now warns and has no effect in the
 
168
        case where no line segments are drawn.  (PR#13340)
 
169
 
 
170
    o   transform.data.frame() works better when two or more columns are
 
171
        added.
 
172
 
 
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.
 
176
 
 
177
    o   matrix() failed to check for 0-length 'dimnames': it now
 
178
        treats them as NULL (as array did).  (PR#13361)
 
179
 
 
180
    o   0^NA is now NA, not Inf, consistent with x^NA, x != 1.
 
181
 
 
182
    o   anova.mlm() did not work if T had only one row (including
 
183
        e.g. the case M = ~1).
 
184
 
 
185
    o   axis.POSIXct() mislabelled for some time ranges of a few hours
 
186
        (reported by Martin Becker).
 
187
 
 
188
    o   mantelhaen.test() with 'exact=FALSE' was not respecting
 
189
        'alternative'. It now does one-sided tests similarly to
 
190
        prop.test().
 
191
 
 
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).
 
194
 
 
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'.
 
199
 
 
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.)
 
205
 
 
206
    o   xspline() now respects inline par settings.
 
207
 
 
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
 
212
        MAXNUMPTS").
 
213
 
 
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).
 
216
 
 
217
    o   median.default() now also works for "numeric"-like vectors.
 
218
 
 
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.
 
222
        (Also PR#13264.)
 
223
 
 
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).
 
227
 
 
228
    o   unique.default() now preserves the "tzone" attribute on
 
229
        "POSIXct" objects.
 
230
 
 
231
    o   If all the packages had dependency lists of equal lengths,
 
232
        occasionally install.packages() would compute an incorrect
 
233
        sort order.
 
234
 
 
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.
 
238
 
 
239
    o   setRepositories() failed if "pkgType" was set to
 
240
        "mac.binary.leopard".
 
241
 
 
242
    o   formals<-() changed the body of the function if this was a
 
243
        length-one list.
 
244
 
 
245
    o   body<-() failed if the function had no arguments.  It now
 
246
        warns if discarding elements from a 'value' of type "expression".
 
247
 
 
248
    o   qr.coef() failed in the complex case for non-square systems.
 
249
        (PR#13305)
 
250
 
 
251
    o   plot.dendrogram(horizontal=TRUE) did not not plot 'edgetext'
 
252
        at the correct locations.  (PR#13313)
 
253
 
 
254
    o   The starting point for plot.acf(ci.type="ma") was lag 0 when it
 
255
        should have been lag 1.  (PR#13071)
 
256
 
 
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
 
259
 
 
260
 
 
261
 
 
262
                CHANGES IN R VERSION 2.8.0
 
263
 
 
264
 
 
265
SIGNIFICANT USER-VISIBLE CHANGES
 
266
 
 
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
 
269
        error before.
 
270
 
 
271
 
 
272
NEW FEATURES
 
273
 
 
274
    o   abbreviate() gains an optional argument 'strict' allowing cheap
 
275
        and fast strict abbrevation.
 
276
 
 
277
    o   The "lm" methods of add1(), anova() and drop1() warn if they are
 
278
        mis-used on an essentially exact fit.
 
279
 
 
280
    o   as.array() is now generic, gains a '...' argument.
 
281
 
 
282
    o   New function as.hexmode() for converting integers in hex format.
 
283
        format.hexmode() and as.character.hexmode() gain an 'upper.case'
 
284
        argument.
 
285
 
 
286
    o   bitmap() and dev2bitmap() gain support for anti-aliasing.
 
287
        The default type has been changed to 'png16m', which supports
 
288
        anti-aliasing.
 
289
 
 
290
    o   Box.test() gains a 'fitdf' argument to adjust the degrees of
 
291
        freedom if applied to residuals.
 
292
 
 
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.)
 
296
 
 
297
    o   by() gains a 'simplify' argument, passed to tapply().
 
298
 
 
299
    o   capabilities() gains a new argument "tiff" to report if tiff()
 
300
        is operational.
 
301
 
 
302
    o   chol2inv() now treats <numeric(1)> as a [1 x 1]-matrix.
 
303
 
 
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.
 
311
 
 
312
    o   data.matrix() now tries harder to convert non-numeric columns,
 
313
        via as.numeric() or as(, "numeric").
 
314
 
 
315
    o   dev.interactive() is able to recognize the standard screen
 
316
        devices if getOption("device") is a function (as well as by name).
 
317
 
 
318
    o   dev.new() gains a '...' argument which can be used to pass
 
319
        named arguments which will be used if appropriate to the
 
320
        device selected.
 
321
 
 
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
 
325
        dimnames.
 
326
 
 
327
    o   format(), formatC() and prettyNum() gain a new argument
 
328
        'drop0trailing' which can be used to suppress trailing "0"s.
 
329
 
 
330
    o   format() now works for environments; also print(env) and str(env)
 
331
        share the same code for environments.
 
332
 
 
333
    o   It is now possible to create and open a text-mode gzfile()
 
334
        connection by explicitly using e.g. open="rt".
 
335
 
 
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.
 
340
 
 
341
    o   help.search() now assumes that non-ASCII items are in latin1
 
342
        if that makes sense (all known examples on CRAN are).
 
343
 
 
344
    o   HoltWinters() and decompose() use a (statistically) more
 
345
        efficient computation for seasonal fits (they used to waste
 
346
        one period).
 
347
 
 
348
    o   intToUtf8() and intToBits() now accept numeric vectors,
 
349
        truncating them to integers.
 
350
 
 
351
    o   is.unsorted() gains an argument 'strictly'.  It now works for
 
352
        classed objects with a >= or > method (as incorrectly
 
353
        documented earlier).
 
354
 
 
355
    o   library() no longer warns about the masking objects that are
 
356
        identical(.,.) to those they mask.
 
357
 
 
358
    o   lockBinding(), unlockBinding(), lockEnvironment() and
 
359
        makeActiveBinding() now all return invisibly (they always
 
360
        return NULL).
 
361
 
 
362
    o   mood.test() now behaves better in the presence of ties.
 
363
 
 
364
    o   na.action() now works on fits of classes "lm", "glm", ....
 
365
 
 
366
    o   optim(.., method="SANN", .., trace=TRUE) is now customizable via
 
367
        the 'REPORT' control argument, thanks to code proposals by
 
368
        Thomas Petzoldt.
 
369
 
 
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
 
375
        packages.
 
376
 
 
377
    o   pch=16 now has no border (for consistency with 15, 17, 18) and
 
378
        hence is now different from pch=19.
 
379
 
 
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).
 
383
 
 
384
        The default PDF version is now 1.4, since viewers that do not
 
385
        accept that are now rare.
 
386
 
 
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.
 
394
 
 
395
    o   plot.dendrogram() has new arguments (xlim, ylim) which allows
 
396
        zooming into a hiearchical clustering dendrogram.
 
397
 
 
398
    o   plot.ecdf() now defaults to pch=19 so as to better convey the
 
399
        left-closed line segments.
 
400
 
 
401
    o   plot.histogram() gains an 'ann' argument. (Wish from Ben Bolker.)
 
402
 
 
403
    o   plot(<lm_obj>) now warns when it omits points with leverage one
 
404
        from a plot.
 
405
 
 
406
    o   Plotmath now recognizes 'aleph' and 'nabla' (the Adobe Symbol
 
407
        'gradient' glyph) as symbol names.
 
408
 
 
409
    o   polyroot() no longer has a maximum degree.
 
410
 
 
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).
 
415
 
 
416
    o   quantile.default() allows 'probs' to stray just beyond [0, 1],
 
417
        to allow for computed values.
 
418
 
 
419
    o   New functions rawConnection() and rawConnectionValue() allow
 
420
        raw vectors to be treated as connections.
 
421
 
 
422
    o   read.dcf() now consistently gives an error for malformed DCF.
 
423
 
 
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.
 
426
 
 
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.
 
430
 
 
431
        readLines(), cat() and sink() now open a connection which was
 
432
        not already open in an appropriate text mode rather than the
 
433
        default mode.
 
434
 
 
435
    o   readCitationFile() (and hence citation) now reads a package's
 
436
        CITATION file in the package's declared encoding (if there is one).
 
437
 
 
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.
 
441
 
 
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.
 
445
 
 
446
    o   round() now computes in long doubles where possible so the
 
447
        results are more likely to be correct to representation error.
 
448
 
 
449
    o   rug() now uses axis()'s new arguments from 2.7.2, hence no
 
450
        longer draws an axis line.
 
451
 
 
452
    o   save() (optionally, but by default) checks for the existence
 
453
        of objects before opening the file/connection (wish of
 
454
        PR#12543).
 
455
 
 
456
    o   segments(), arrows() and rect() allow zero-length
 
457
        coordinates.  (Wish of PR#11192)
 
458
 
 
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.)
 
465
 
 
466
        set.seed() gains a 'normal.kind' argument.
 
467
 
 
468
    o   setEPS() and setPS() gain '...' to allow other arguments to be
 
469
        passed to ps.options(), including overriding 'width' and 'height'.
 
470
 
 
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.
 
474
 
 
475
    o   splinefun() has a new method = "monoH.FC" for monotone Hermite
 
476
        spline interpolation.
 
477
 
 
478
    o   sprintf() optionally supports the %a/%A notation of C99 (if the
 
479
        platform does, including under Windows).
 
480
 
 
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.
 
484
 
 
485
    o   The summary() method for class "ecdf" now uses a print()
 
486
        method rather than printing directly.
 
487
 
 
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
 
492
        anova.mlmlist().
 
493
 
 
494
    o   Sweave() now writes concordance information inside a
 
495
        \Sconcordance LaTeX macro, which allows it to be inserted into
 
496
        PDF output.
 
497
 
 
498
    o   system.time() now uses lazy evaluation rather than
 
499
        eval/substitute, which results in more natural scoping. (PR#11169)
 
500
 
 
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.
 
506
 
 
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").
 
510
 
 
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
 
514
        installed ones.
 
515
 
 
516
    o   which(b) is somewhat faster now, notably for named vectors, thanks
 
517
        to a suggestion by Henrik Bengtsson.
 
518
 
 
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.
 
524
 
 
525
        As a side-effect, rank() will now work better on classed
 
526
        objects, although possibly rather slowly.
 
527
 
 
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.
 
531
 
 
532
 
 
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).
 
537
 
 
538
    o   The user environment and profile files can now be specified via
 
539
        environment variables 'R_ENVIRON_USER' and 'R_PROFILE_USER',
 
540
        respectively.
 
541
 
 
542
    o   ?pkg::topic and ?pkg:::topic now find help on 'topic' from
 
543
        package 'pkg' (and not help on :: or :::).
 
544
 
 
545
    o   ??topic now does help.search("topic"); variations such as
 
546
        ??pkg::topic or field??topic are also supported.
 
547
 
 
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]
 
553
 
 
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
 
556
        S4 attributes.
 
557
 
 
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.)
 
563
 
 
564
    o   Using $ on a non-subsettable object (such as a function) is
 
565
        now an error (rather than returning NULL).
 
566
 
 
567
    o   Hexadecimal numerical constants (such as 0xab.cdp+12) may now
 
568
        contain a decimal point.
 
569
 
 
570
    o   PCRE has been updated to version 7.8 (mainly bug fixes).
 
571
 
 
572
 
 
573
NEW FEATURES IN PACKAGE 'methods'
 
574
 
 
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.
 
580
 
 
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.
 
586
 
 
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.
 
591
 
 
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.
 
596
 
 
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.
 
601
 
 
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.
 
605
 
 
606
    o   show(<class definition>) now also shows the class name.
 
607
 
 
608
 
 
609
INSTALLATION
 
610
 
 
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).
 
614
 
 
615
 
 
616
PACKAGE INSTALLATION
 
617
 
 
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.
 
621
 
 
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.
 
627
 
 
628
 
 
629
DEPRECATED & DEFUNCT
 
630
 
 
631
    o   Use in packages of the graphics headers Rdevices.h and
 
632
        Rgraphics.h is defunct: they are no longer installed.
 
633
 
 
634
    o   options("par.ask.default") is defunct in favour of
 
635
        "device.ask.default".
 
636
 
 
637
    o   The 'device-independent' family "symbol" is defunct: use
 
638
        font=5 (base) or fontface=5 (grid) instead.
 
639
 
 
640
    o   gammaCody() is defunct.
 
641
 
 
642
    o   par("gamma") is defunct.
 
643
 
 
644
    o   'methods' package functions getAccess(), getAllMethods(),
 
645
        getClassName(), getClassPackage(), getExtends(),
 
646
        getProperties(), getPrototype(), getSubclasses, getVirtual(),
 
647
        mlistMetaName(), removeMethodsObject() and seemsS4Object() are
 
648
        defunct.
 
649
 
 
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.)
 
653
 
 
654
    o   methods::allGenerics() is deprecated.
 
655
 
 
656
    o   In package installation, SaveImage: yes is now ignored, and
 
657
        any use of the field will give a warning.
 
658
 
 
659
    o   unserialize() no longer accepts character strings as input.
 
660
 
 
661
    o   The C macro 'allocString' has been removed -- use 'mkChar' and
 
662
        variants.
 
663
 
 
664
    o   Use of allocVector(CHARSXP ...) is deprecated and gives a warning.
 
665
 
 
666
 
 
667
UTILITIES
 
668
 
 
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.
 
674
 
 
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).
 
678
 
 
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.
 
682
 
 
683
    o   R CMD check now also uses codetools' checks on the body of S4
 
684
        methods.
 
685
 
 
686
 
 
687
C-LEVEL FACILITIES
 
688
 
 
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.
 
692
 
 
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.
 
696
 
 
697
    o   PROTECT and UNPROTECT macros now work even with R_NO_REMAP.
 
698
 
 
699
 
 
700
BUG FIXES
 
701
 
 
702
    o   @ now gives an error (and not just a warning) if it is being
 
703
        applied to a non-S4 object.
 
704
 
 
705
    o   R CMD appends (not prepends) R's texmf path to TEXINPUTS.
 
706
 
 
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.
 
711
 
 
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.
 
716
 
 
717
        Similarly functions which read such as readLines(), scan(),
 
718
        dcf() and parse() check connections for being open for reading.
 
719
 
 
720
    o   Equality comparison of factors with <NA> levels now works
 
721
        correctly again.
 
722
 
 
723
    o   Repainting of open X11 View() windows is now done whilst an
 
724
        X11 dataentry window is in use.
 
725
 
 
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
 
728
        are selected.
 
729
 
 
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.
 
733
 
 
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
 
737
        NAs were present.
 
738
 
 
739
    o   The "lm" methods of add1(), and drop1() now also work on a model
 
740
        fit with  na.action = na.exclude.
 
741
 
 
742
    o   median(c(x = NA_real_)) no longer has spurious names().
 
743
 
 
744
    o   isoreg(x, y) now returns the correct result also when x has ties,
 
745
        in all cases.
 
746
 
 
747
    o   What na.action() does is now correctly documented.
 
748
 
 
749
    o   source() with echo=TRUE now behaves like ordinary automatic
 
750
        printing, by using methods::show() for S4 objects.
 
751
 
 
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.
 
755
 
 
756
    o   trace() should create missing traceable classes in the global
 
757
        environment, not in baseenv() where other classes will not be
 
758
        found.
 
759
 
 
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.
 
765
 
 
766
    o   RSiteSearch() encodes its query (it seems this is occasionally
 
767
        needed on some platforms, but encoding other fields is harmful).
 
768
 
 
769
    o   'incomparables' in match() was looking up indices in the wrong
 
770
        table.
 
771
 
 
772
    o   write.dcf() did not escape "." according to Debian policy
 
773
        (PR#12816).
 
774
 
 
775
    o   col2rgb() sometimes opened a graphics device unnecessarily, and
 
776
        col2rgb(NA) did not return a transparent color, as documented.
 
777
 
 
778
    o   pdf(family="Japan") [and other CIDfonts] no longer seg.faults
 
779
        when writing "western" text strings.
 
780
 
 
781
    o   as.list() applied to an environment now forces promises and
 
782
        returns values.
 
783
 
 
784
    o   Promises capturing calls to sys.parent() and friends did not
 
785
        work properly when evaluated via method dispatch for internal
 
786
        S3 generics.
 
787
 
 
788
    o   The default "pkgType" option for non-CRAN builds of R on Mac OS X
 
789
        is now correctly "source" as documented.
 
790
 
 
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
 
793
 
 
794
    o   splinefun() with natural splines incorrectly evaluated derivatives
 
795
        to the left of the first knot. (PR#13132, fix thanks to
 
796
        Berwin Turlach)
 
797
 
 
798
    o   anova(glm(..., y=FALSE)) now works.  (PR#13098)
 
799
 
 
800
    o   cut.Date(x, "weeks") could fail if x has only one unique value
 
801
        which fell on a week boundary.  (PR#13159)
 
802
 
 
803
 
 
804
 
 
805
 
 
806
        **************************************************
 
807
        *                                                *
4
808
        *              2.7 SERIES NEWS                   *
5
809
        *                                                *
6
810
        **************************************************
7
811
 
8
812
 
 
813
 
 
814
                CHANGES IN R VERSION 2.7.2 patched
 
815
 
 
816
 
 
817
BUG FIXES
 
818
 
 
819
    o   within(<dataframe>, { ... }) now also works when '...' removes
 
820
        more than one column.
 
821
 
 
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.
 
825
        (PR#12628)
 
826
 
 
827
    o   source() did not respect the setting of options("keep.source")
 
828
        when setting source references.
 
829
 
 
830
    o   seek() now clears the pushback on a text-mode connection if
 
831
        used to set a new position.  (PR#12640)
 
832
 
 
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().
 
836
 
 
837
    o   dnbinom(0, size, mu = <large>) suffered from cancellation in 2.7.2
 
838
        only.
 
839
 
 
840
 
 
841
 
 
842
                CHANGES IN R VERSION 2.7.2
 
843
 
 
844
 
 
845
NEW FEATURES
 
846
 
 
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
 
851
        as UTF-8.
 
852
 
 
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
 
856
        or zero width).
 
857
 
 
858
    o   legend() has a new argument 'box.col' to set the colour of the
 
859
        enclosing box.
 
860
 
 
861
    o   legend() gains a 'xpd' argument to make it easier to place a
 
862
        legend in the margins or outer margins.
 
863
 
 
864
    o   stripchart() now passes '...' to title() (as well as to
 
865
        plot.default() and axis()). (Wish of PR#12202)
 
866
 
 
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
 
870
        results pages.
 
871
 
 
872
 
 
873
BUG FIXES
 
874
 
 
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").
 
878
 
 
879
    o   sink() and cat() could divert output to a non-writable connection.
 
880
 
 
881
    o   phyper(x, 0,0,0) no longer hangs for huge x and gives 1 for x >= 0.
 
882
        (PR#11813)
 
883
 
 
884
    o   plnorm(x, ..., log.p=TRUE) is now correct for x <= 0. (PR#11867)
 
885
 
 
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
 
888
        Matthew Dowle.
 
889
 
 
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.
 
892
 
 
893
    o   The GUI data editor for dataframes did not handle escape
 
894
        characters in entries properly. (PR#11897)
 
895
 
 
896
    o   PCRE has been updated to 7.7 (bugfix release).
 
897
 
 
898
    o   package.skeleton() wrongly warned about invalid code_files names
 
899
        when these were not in the current directory.
 
900
 
 
901
    o   shapiro.test(c(0,0,1)) now has P value >= 0 (instead of barely
 
902
        negative).
 
903
 
 
904
    o   assign() now warns if given a character vector of length > 1,
 
905
        rather than silently taking the first element.
 
906
 
 
907
    o   rcond(<exactly singular matrix>) now gives 0 instead of an error.
 
908
 
 
909
    o   There was a memory leak in C function ucstoutf8 used by some
 
910
        graphics devices.
 
911
 
 
912
    o   Plots of profile.mle() objects (package 'stats4') were
 
913
        misbehaving when the 'which' argument had been used in their
 
914
        calculation.
 
915
 
 
916
    o   dnbinom(x, size, mu=*, ..) is now more accurate for very large
 
917
        'size'.  The same applies to pnbinom() and rnbinom().
 
918
 
 
919
    o   axis() was ignoring par() mgp[3] if mgp was set in-line.
 
920
 
 
921
    o   Closing an X11 View() or dataentry window via its frame's
 
922
        close control now works better on some window managers.
 
923
 
 
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.
 
929
 
 
930
    o   package.skeleton() was not looking for non-function objects in
 
931
        its 'environment' argument.
 
932
 
 
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.
 
936
 
 
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.
 
941
 
 
942
    o   The 'mle' confint() method now takes 'level' into account when
 
943
        setting 'alpha' for the profile.
 
944
 
 
945
    o   within() was not handling correctly expressions that produced
 
946
        NULL columns.  (PR#11131)
 
947
 
 
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
 
950
        occurs. (PR#9801)
 
951
 
 
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).
 
955
 
 
956
    o   The automatic placement of legend() with 'title' and a
 
957
        reversed 'x' axis was incorrect. (PR#12019)
 
958
 
 
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).
 
962
 
 
963
    o   bxp() (and hence boxplot) now respects in-line graphical
 
964
        parameters 'xaxp'/'yaxp' as appropriate.  (PR#11463)
 
965
 
 
966
    o   barplot(log = "y") failed if there were NAs in the 'height'
 
967
        argument.  (PR#11585)
 
968
 
 
969
    o   pbeta() is more accurate in some cases with extreme values of
 
970
        'ncp'.  (PR#11277).
 
971
 
 
972
    o   edit.data.frame() no longer fails if called on a 0-column
 
973
        data frame and no column is created.
 
974
 
 
975
    o   pchisq(x, df=0) was always one even for x < 0; similarly for
 
976
        pgamma(x, alpha=0).
 
977
 
 
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
 
980
        in R 2.6.2).
 
981
 
 
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).
 
985
 
 
986
    o   The undocumented limit of 8191 bytes on comments (from # to
 
987
        the end of the line) in R code has been removed.
 
988
 
 
989
    o   qgamma() warns if used with shape < 1e-10, when it may be
 
990
        unreliable.  (PR#12324)
 
991
 
 
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).
 
997
 
 
998
    o   duplicated() and unique() now handle 'incomparables' better,
 
999
        and avoid occasional segfaults (PR#12551).
 
1000
 
 
1001
    o   plot(isoreg(x, y)) now plots the points correctly when 'x'
 
1002
        is unssorted.
 
1003
 
 
1004
    o   data.frame(row.names=NULL) once again behaves differently from
 
1005
        the default (as documented).
 
1006
 
 
1007
 
 
1008
 
9
1009
                CHANGES IN R VERSION 2.7.1
10
1010
 
11
1011
 
226
1226
        more arguments.
227
1227
 
228
1228
    o   symbol() in plotmath expressions works again with non-ASCII
229
 
        input on devices that use UTF-8 for the symbol font.
 
1229
        input on devices that use UTF-8 for the symbol font.
230
1230
 
231
1231
 
232
1232
 
842
1842
        (Note that this is pretty arbitrary, but zero-length vectors
843
1843
        always give an error so it is at least consistent.)
844
1844
 
 
1845
        Since sd(na.rm=TRUE) and var(na.rm=TRUE) both call cov(use =
 
1846
        "complete.obs"), this applies also to them.
 
1847
 
845
1848
        cor(use="pair") used to give diagonal 1 even if the variable
846
1849
        was completely missing for the rank methods but NA for the
847
1850
        Pearson method: it now gives NA in all cases.