R 2.1.0 の変更点





   o	%% now warns if its accuracy is likely to be affected by lack
	of precision (as in 1e18 %% 11, the unrealistic expectation of
	PR#7409), and tries harder to return a value in range when it is.
   o	The default methods for add1() and drop1() check for changes
	in the number of cases in use.
	The "lm" and "glm" methods for add1() quoted the <none> model
	on the original fitted values when using (with a warning) a
	smaller set of cases for the expanded models.
   o	as.dist() and cophenetic() are now generic, and the latter has a
	new method for objects of class "dendrogram".
   o	as.ts() is now generic.
   o	binomial() has a new "cauchit" link (suggested by Roger Koenker).
   o	chisq.test() has a new argument 'rescale.p'.  It is now possible
	to simulate (slowly) the P value also in the 1D case
	(contributed by Rolf Turner).
   o	colSums()/rowSums() now allow arrays with a zero-length extent
	(requested by PR#7775).
   o	confint() has stub methods for classes "glm" and "nls" that
	invoke those in package MASS.  This avoids using the "lm"
	method for "glm" objects if MASS is not attached.
	confint() has a default method using asymptotic normality.
   o	The cov() function in the non-Pearson cases now ranks data after
	removal of missing values, not before.	The pairwise-complete
	method should now be consistent with cor.test.	(Code
	contributed by Shigenobu Aoki.)
   o	duplicated() and unique() now accept "list" objects, but are
	fast only for simple list objects.
   o	ecdf() now has jumps of the correct size (a multiple of 1/n)
	if there are ties.  (Wished by PR#7292).
   o	eff.aovlist() assumed orthogonal contrasts for any term
	with more than one degree of freedom: this is now documented
	and checked for.  Where each term only occurs in only one
	stratum the efficiencies are all one: this is detected and
	orthogonal contrasts are not required.
   o	grep(), gsub(), sub() and regexpr() now always attempt to
	coerce their 'pattern', 'x', 'replacement' and 'text'
	arguments to character.	 Previously this was undocumented but
	done by [g]sub() and regexpr() for some values of their
	other arguments.  (Wish of PR#7742.)
   o	mahalanobis() now has a '...' argument which is passed to solve()
	for computing the inverse of the covariance matrix, this replaces
	the former 'tol.inv' argument.
   o	New function message() in 'base' for generating "simple"
	diagnostic messages, replacing such a function in the
	'methods' package.
   o	na.contiguous() is now (S3) generic with first argument
	renamed to 'object'.
   o	p.adjust() has a new method "BY".
   o	pbeta() now uses a different algorithm for large values of at
	least one of the shape parameters, which is much faster and is
	accurate and reliable for very large values.  (This affects
	pbinom(), pf(), qbeta() and other functions using pbeta at C
   o	pch="." now by default produces a rectangle at least 0.01" per
	side on high-resolution devices.  (It used to be one-pixel
	square even on high-resolution screens and Windows printers,
	but 1/72" on postscript() and pdf() devices.)  Additionally,
	the size is now scalable by 'cex'; see ?points and note that
	the details are subject to change.
   o	plot.data.frame() tries harder to produce sensible plots for
	non-numeric data frames with one or two columns.
   o	The predict() methods for "prcomp" and "princomp" now match
	the columns of 'newdata' to the original fit using column
	names if these are available.
   o	New function RSiteSearch() to query R-related resources
	on-line (contributed by Jonathan Baron and Andy Liaw).
   o	scan() arranges to share storage of duplicated character
	strings read in: this can dramatically reduce the memory
	requirements for large character vectors which will
	subsequently be turned into factors with relatively few
	levels.	 For a million items this halved the time and reduced
	storage by a factor of 20.
	scan() has a new argument 'allowEscapes' (default TRUE) that
	controls when C-style escapes in the input are interpreted.
	Previously only \n and \r were interpreted, and then only
	within quoted strings when no separator was supplied.
	scan() used on an open connection now pushes back on the
	connection its private `ungetc' and so is safer to use to
	read partial lines.
   o	scatter.smooth() and loess.smooth() now handle missing values
	in their inputs.
   o	sprintf() has been enhanced to allow the POSIX/XSI specifiers
	like "%2$6d", and also accepts "%x" and "%X".
	sprintf() does limited coercion of its arguments.
	sprintf() accepts vector arguments and operates on them in
	parallel (after re-cycling if needed).
   o	Sys.setlocale("LC_ALL", ) now only sets the locale categories
	which R uses, and Sys.setlocale("LC_NUMERIC", ) now gives a
	warning (as it can cause R to malfunction).
   o	unclass() is no longer allowed for environments and external
	pointers (since these cannot be copied and so unclass() was
	destructive of its argument).  You can still change the
	"class" attribute.
   o	File-name matching is no longer case-insensitive with unz()
	connections, even on Windows.
   o	New argument 'immediate.' to warning() to send an immediate
   o	New convenience wrappers write.csv() and write.csv2().
   o	There is a new version for write.table() which is implemented in C.
	For simple matrices and data frames this is several times
	faster than before, and uses negligible memory compared to the
	object size.
	The old version (which no longer coerces a matrix to a data
	frame and then back to a matrix) is available for now as
   o	Plotmath now allows underline in expressions.  (PR#7286,
	contributed by Uwe Ligges.)
   o	BATCH on Unix no longer sets --gui="none" as the X11 module
	is only loaded if needed.
   o	The X11 module (and the hence X11(), jpeg() and png() devices
	and the X-based dataentry editor) is now in principle
	available under all Unix GUIs except --gui="none", and this is
	reflected in capabilities().
	capabilities("X11") determines if an X server can be accessed,
	and so is more likely to be accurate.
   o	Printing of arrays now honours the 'right' argument if there
	are more than two dimensions.
   o	Tabular printing of numbers now has headers right-justified, as
	they were prior to version 1.7.0 (spotted by Rob Baer).
   o	The implicit class structure for numeric vectors has been
	changed, so that integer/real vectors try first methods for
	class "integer"/"double" and then those for class "numeric".
	The implicit classes for matrices and arrays have been changed
	to be "matrix"/"array" followed by the class(es) of the
	underlying vector.
   o	splines::splineDesign() now allows the evaluation of a B-spline
	basis everywhere instead of just inside the "inner" knots, by
	setting the new argument `outer.ok = TRUE'.
   o	Readline is not used for tilde expansion when R is run with
	--no-readline, nor from embedded applications.	Then "~name"
	is no longer expanded, but "~" still is.
   o	New encoding 'TeXtext.enc' improves the way postscript() works
	with Computer Modern fonts.
   o	Replacement in a non-existent column of a data frame tries
	harder to create a column of the correct length and so avoid a
	corrupt data frame.
   o	For Windows and readline-based history, the saved file size is
	re-read from R_HISTSIZE immediately before saving.
   o	Collected warnings during start-up are now printed before the
	initial prompt rather than after the first command.
   o	Changes to package 'grid':
	- preDrawDetails(), drawDetails(), and postDrawDetails()
	  methods are now recorded on the graphics engine
	  display list.	  This means that calculations within these
	  methods are now run when a device is resized or
	  when output is copied from one device to another.
	- Fixed bug in grid.text() when 'rot' argument has length 0.
	  (privately reported by Emmanuel Paradis)
	- New getNames() function to return just the names of all top-level
	  grobs on the display list.
	- Recording on the grid display list is turned off within
	  preDrawDetails(), drawDetails(), and postDrawDetails() methods.
	- Grid should recover better from errors or user-interrupts
	  during drawing (i.e., not leave you in a strange viewport
	  or with strange graphical parameter settings).
	- New function grid.refresh() to redraw the grid display list.
	- New function grid.record() to capture calculations
	  with grid graphics output.
	- grobWidth and grobHeight ("grobwidth" and "grobheight" units)
	  for primitives (text, rects, etc, ...) are now
	  calculated based on a bounding box for the relevant grob.
	  NOTE: this has changed the calculation of the size of a scalar
	  rect (or circle or lines).
	- New arguments 'warn' and 'wrap' for function grid.grab()
	- New function grid.grabExpr() which captures the output from
	  an expression (i.e., not from the current scene) without
	  doing any drawing (i.e., no impact on the current scene).
	- upViewport() now (invisibly) returns the path that it goes up
	  (suggested by Ross Ihaka).
	- The 'gamma' gpar has been deprecated (this is a device property
	  not a property of graphical objects;	suggested by Ross Ihaka).
	- New 'lex' gpar;  a line width multiplier.
	- grid.text() now handles any language object as mathematical
	  annotation (instead of just expressions).
	- plotViewport() has default value for 'margins' argument (that match
	  the default value for par(mar)).
	- The 'extension' argument to dataViewport() can now be vector,
	  in which case the first value is used to extend the xscale and
	  the second value is used to extend the y scale.
	  (suggested by Ross Ihaka).
	- All 'just' arguments (for viewports, layouts, rectangles, text)
	  can now be numeric values (typically between 0 [left] and 1 [right])
	  as well as character values ("left", "right", ...).
	  For rectangles and text, there are additional 'hjust' and 'vjust'
	  arguments which allow numeric vectors of justification in
	  each direction (e.g., so that several pieces of text can have
	  different justifications).
	  (suggested by Ross Ihaka)
	- New 'edits' argument for grid.xaxis() and grid.yaxis() to
	  allow specification of on-the-fly edits to axis children.
	- applyEdit(x, edit) returns x if target of edit (i.e., child
	  specified by a gPath) cannot be found.
	- Fix for calculation of length of max/min/sum unit.  Length is
	  now (correctly) reported as 1 (was reported as length of first arg).
	- Viewport names can now be any string (they used to have to be a
	  valid R symbol).
	- The 'label' argument for grid.xaxis() and grid.yaxis() can now
	  also be a language object or string vector, in which case it
	  specifies custom labels for the tick marks.


   o	New command-line flag --encoding to specify the encoding to
	be assumed for stdin (but not for a console).
   o	The meaning of 'encoding' for a connection has changed: it now
	allows any charset encoding supported by iconv on the
	platform, and can re-encode output as well as input.
	As the new specification is a character string and the old was
	numeric, this should not cause incorrect operation.
   o	nchar() returns the true number of bytes stored (including any
	embedded nuls), this being 2 for missing values.  It has an
	optional argument 'type' with possible non-default values
	"chars" and "width" to give the number of characters or the
	display width in columns.
   o	Characters can be entered in hexadecimal as e.g. \x9c, and in
	UTF-8 and other multibyte locales as \uxxxx, \u{xxxx},
	\Uxxxxxxxx or \U{xxxxxxxx}.  Non-printable Unicode characters
	are displayed C-style as \uxxxx or \Uxxxxxxxx.
   o	LC_MONETARY is set to the locale, which affects the result of
	Sys.localeconv(), but nothing else in R itself.	 (It could
	affect add-on packages.)
   o	source() now has an 'encoding' argument which can be used to
	make it try out various possible encodings.  This is made use
	of by example() which will convert (non-UTF-8) Latin-1 example
	files in a UTF-8 locale.
   o	delimMatch (tools) now reports match positions and lengths in
	units of characters, not bytes.	 The delimiters can be
	strings, not just single ASCII characters.
   o	.Rd files can indicate via a \encoding{} argument the encoding
	that should be assumed for non-ASCII characters they contain.
   o	Phrases in .Rd files can be marked by \enc{}{} to show a
	transliteration to ASCII for use in e.g. text help.
   o	The use of 'pch' in points() now allows for multi-byte character
	sets: in such a locale a glyph can either be specified as a
	multi-byte single character or as a number, the Unicode point.
   o	New function l10n_info() reports on aspects of the
	locale/charset currently in use.
   o	scan() is now aware of double-byte locales such as Shift-JIS
	in which ASCII characters can occur as the second ('trail')
   o	The infrastructure is now in place for C-level error and warning
	messages to be translated and used on systems with Native
	Language Support.  This has been used for the startup message
	in English and to translate Americanisms such as 'color' into
	English: translations to several other languages are under
	way, and some are included in this release.
	See 'Writing R Extensions' for how to make use of this in a
	package: all the standard packages have been set up to do
	translation, and the 'language' 'en at quot' is implemented to
	allow Unicode directional quotes in a UTF-8 locale.
   o	R-level stop(), warning() and message() messages can be
	translated, as can other messages via the new function
	gettext(). Tools xgettext() and xgettext2pot() are provided in
	package tools to help manage error messages.
	gettextf() is a new wrapper to call sprintf() using
	gettext() on the format string.
   o	Function ngettext() allows the management of singular and
	plural forms of messages.


   o	New functions mirror2html() and checkCRAN().
   o	R CMD check now checks that Fortran and C++ files have LF
	line endings, as well as C files.  It also checks Makevars[.in]
	files for portable compilation flags.
   o	R CMD check will now work on a source tarball and prints out
	information about the version of R and the package.
   o	tools:::.install_package_code_files() (used to collate R files
	when installing packages) ensures files are separated by a
	line feed.
   o	vignette() now returns an object of class "vignette" whose
	print() method opens the corresponding PDF file.  The edit()
	method can be used to open the code of the vignette in an
   o	R CMD INSTALL on Unix has a new option '--build' matching
	that on Windows, to package as tarball the installed package.
   o	R CMD INSTALL on Unix can now install binary bundles.
   o	R CMD build now changes src files to LF line endings if necessary.
   o	R CMD build now behaves consistently between source and binary
	builds: in each case it prepares a source directory and then
	either packages that directory as a tarball or calls R CMD
	INSTALL --build on the prepared sources.
	This means that R CMD build --binary now respects
	.Rbuildignore and will rebuild vignettes (unless the option
	--no-vignettes is used).  For the latter, it now installs the
	current sources into a temporary library and uses that version
	of the package/bundle to rebuild the vignettes.
   o	R CMD build now reports empty directories in the source tree.
   o	New function write_PACKAGES() in package 'tools' to help with
	preparing local package repositories.  (Based on a contribution
	by Uwe Ligges.)	 How to prepare such repositories is
	documented in the 'R Installation and Administration' manual.
   o	package.skeleton() adds a bit more to DESCRIPTION.
   o	Sweave changes:
	- \usepackage[nogin]{Sweave} in the header of an Sweave file
	  supresses auto-setting of the graphical parameter like width
	  of graphics.
	- The new \SweaveInput{} command works similar to LaTeX's
	  \input{} command.
	- Option value strip.white=all strips all blank lines from the
	  output of a code chunk.
	- Code chunks with eval=false are commented out by Stangle() and
	  hence no longer tested by R CMD check.


   o	File doc/html/faq.html no longer exists, and doc/manual/R-FAQ.html
	(which has active links to other manuals) is used instead.
	(If makeinfo >= 4.7 is not available, the version on CRAN is
	linked to.)
   o	Manual 'Writing R Extensions' has further details on writing
	new front-ends for R using the new public header files.
   o	There are no longer any restrictions on characters in the
	\name{} field of a .Rd file: in particular _ is supported.


   o	There are new public C/C++ header files Rinterface.h and
	R_ext/RStartup.h for use with external GUIs.
   o	Added an onExit() function to graphics devices, to be executed
	upon user break if non-NULL.
   o	ISNAN now works even in C++ code that undefines the 'isnan' macro.
   o	New math utility functions  log1pmx(x), lgamma1p(x),
	logspace_add(logx, logy), and logspace_sub(logx, logy).


   o	The aqua module for MacOS X has been removed: --with-aqua now
	refers to the unbundled Cocoa GUI.
   o	The undocumented use of UseMethod() with no argument was
	deprecated in 2.0.1 and is now regarded as an error.
   o	The 'CRAN' argument to update.packages(), old.packages(),
	new.packages(), download.packages() and install.packages() is
	deprecated in favour of 'repos', which replaces it as a
	positional argument (so this is only relevant for calls with
	named args).
   o	The S3 methods for getting and setting names of "dist" objects
	have been removed (as they provided names with a different
	length from the "dist" object itself).
   o	Option "repositories" is no longer used and so not set.


   o	Configure tries harder to find a minimal set of FLIBS.	Under
	some circumstances this may remove from R_LD_LIBRARY_PATH
	path elements that ought to have specified in LDFLAGS (but
	were not).


   o	install.packages() and friends now accept a vector of URLs for
	'repos' or 'contriburl' and get the newest available version of
	a package from the first repository on the list in which it is
	found.	The argument 'CRAN' is still accepted, but deprecated.
	install.packages() on Unix can now install from local .tar.gz
	files via repos = NULL (as has long been done on Windows).
	install.packages() no longer asks if downloaded packages
	should be deleted: they will be deleted at the end of the
	session anyway (and can be deleted by the user at any time).
	If the repository provides the information, install.packages()
	will now accept the name of a package in a bundle.
	If 'pkgs' is omitted install.packages() will use a listbox to
	display the available packages, on suitable systems.
	'dependencies' can be a character vector to allow only some
	levels of dependencies (e.g. not "Suggests") to be requested.
   o	There is a new possible value update.packages(ask="graphics")
	that uses a widget to (de)select packages, on suitable systems.
   o	The option used is now getOption("repos") not getOption("CRAN")
	and it is initially set to a dummy value.  Its value can be a
	character vector (preferably named) giving one or several
	A new function chooseCRANmirror() will select a CRAN mirror.
	This is called automatically if the contrib.url() encounters
	the initial dummy value of getOption("repos")
	A new function setRepositories() can be used to create
	getOption("repos") from a (platform-specific) list of known
   o	New function new.packages() to report uninstalled packages
	available at the requested repositories.  This also reports
	incomplete bundles.  It will optionally install new packages.
   o	New function available.packages(), similar to CRAN.packages()
	but for use with multiple repositories.	 Both now only report
	packages whose R version requirements are met.
   o	update.packages() and old.packages() have a new option
	'checkBuilt' to allow packages installed under earlier
	versions of R to be updated.
   o	remove.packages() can now remove bundles.
   o	The Contains: field of the DESCRIPTION file of package bundles
	is now installed, so later checks can find out if the bundle
	is complete.
   o	packageStatus() is now built on top of *.packages, and gains a
	'method' argument.  It defaults to the same repositories as
	the other tools, those specified by getOption("repos").


   o	Configuring for Tcl/Tk makes use of ${TK_LIB_SPEC} ${TK_LIBS}
	not ${TK_LIB_SPEC} ${TK_XLIBSW}, which is correct for
	recent versions of Tk, but conceivably not for old
	tkConfig.sh files.
   o	detach() was not recomputing the S4 methods for primitives
   o	Methods package now has class "expression" partly fixed in basic
	classes, so S4 classes can extend these (but "expression" is
	pretty broken as a vector class in R).
   o	Collected warnings had messages with unneeded trailing space.
   o	S4 methods for primitive functions must be exported from
	namespaces; this is now done automatically.
	Note that is.primitive() is now in "base", not "methods".
   o	Package grid:
	- Fixed bug in grid.text() when "rot" argument has length 0.
	  (reported by Emmanuel Paradis)
   o	.install_package_vignette_index() created an index even in an
	empty 'doc' directory.
   o	The print() method for factors now escapes characters in the
	levels in the same way as they are printed.
   o	str() removed any class from environment objects.
	str() no longer interprets control characters in character
	strings and factor levels; also no longer truncates factor
	levels unless they are longer than 'nchar.max'.
	Truncation of such long strings is now indicated ''outside''
	the string.
	str(<S4.object>) was misleading for the case of a single slot.
	str() now also properly displays S4 class definitions (such as
	returned by getClass().
   o	print.factor(quote=TRUE) was not quoting levels, causing
	ambiguity when the levels contained spaces or quotes.
   o	R CMD check was confused by a trailing / on a package name.
   o	write.table() was writing incorrect column names if the data
	frame contained any matrix-like columns.
   o	write.table() was not quoting row names for a 0-column x.
   o	t(x)'s default method now also preserves names(dimnames(x)) for
	1D arrays 'x'.
   o	r <- a %*% b no longer produces names(dimnames(r)) == c("", "")
	unless one of a or b has named dimnames.
   o	Some .Internal functions that were supposed to return invisibly
	did not. This was behind PR#7397 and PR#7466.
   o	eval(expr, NULL, encl) now looks up variables in encl, as
	eval(expr, list(), encl) always did
   o	Coercing as.data.frame(NULL) to a pairlist caused an error.
   o	p.adjust(p, ..) now correctly works when `p' contains NAs (or when
	it is of length 0 or length 2 for method = "hommel").
   o	'methods' initialization was calling a function intended for
	.Call() with .C().
   o	optim() needed a check that the objective function returns a
	value of length 1 (spotted by Ben Bolker).
   o	X11() was only scaling its fonts to pointsize if the dpi
	was within 0.5 of 100dpi.
   o	X11() font selection was looking for any symbol font, and
	sometimes got e.g. bold italic if the server has such a font.
   o	dpois(*, lambda=Inf) now returns 0 (or -Inf for log).
   o	Using pch="" gave a square (pch=0)!  Now it is regarded as the
	same as NA, which was also undocumented but omits the point.
   o	Base graphics now notices (ab)lines which have a zero
	coordinate on log scale, and omits them.  (PR#7559)
   o	stop() and warning() now accept NULL as they are documented
	to do (although this seems of little use and is equivalent to "").
   o	weighted.mean() now checks the length of the weight vector w.
   o	getAnywhere() was confused by names with leading or trailing dots
	(spotted by Robert McGehee)
   o	eval() was not handling values from return() correctly.
   o	par(omd) is now of the form c(x1, x2, y1, y2) to match the
	documentation and for S-PLUS compatibility.
	[Previously, par(omd) was of the form c(bottom, left, top, right)
	 like par(oma) and par(omi)]
   o	formatC() did not check its 'flag' argument, and could
	segfault if it was incorrect. (PR#7686)
   o	Contrasts needed to be coerced to numeric (e.g. from integer)
	inside model.matrix.  (PR#7695)
   o	socketSelect() did not check for buffered input.
   o	Reads on a non-blocking socket with no available data were
	not handled properly and could result in a segfault.
   o	The "aovlist" method for se.contrast() failed in some very
	simple cases that were effectively not multistratum designs,
	e.g. only one treatment occurring in only one stratum.
   o	pgamma() uses completely re-written algorithms, and should work
	for all (even very extreme) arguments; this is based on Morten
	Welinder's contribution related to PR#7307.
   o	x <- 2^(0:1000);    plot(x, x^.9, type="l", log="xy")# and
	x <- 2^-(1070:170); plot(x, x^.9, type="l", log="xy")# now both work
   o	summary.lm() asked for a report on a reasonable occurrence, but
	the check failed to take account of NAs.
   o	lm() was miscalculating 'df.residual' for empty models with a
	matrix response.
   o	summary.lm() now behaves more sensibly for empty models.
   o	plot.window() was using the wrong sign when adjusting
	xlim/ylim for positive 'asp' and a reversed axis.
   o	If malloc() fails when allocating a large object the allocator now
	does a gc and tries the malloc() again.
   o	packageSlot() and getGroupMembers() are now exported from the
	'methods' package as they should from documentation and the
	Green Book.
   o	rhyper() was giving numbers slightly too small, due to a bug in the
	original algorithm.  (PR#7314)
   o	[g]sub(perl = TRUE) was giving random results for a 0-length
	initial match.	(PR#7742)
   o	[g]sub was ignoring most 0-length matches, including all initial
	ones.  Note that substitutions such as gsub("[[:space:]]*", "
	", ...) now work as they do in 'sed' (whereas the effect was
	previously the same as gsub("[[:space:]]+", " ", ...)).
	(In part PR#7742)
   o	Promises are now evaluated when extracted from an environment
	using '$' or '[[ ]]'.
   o	reshape(direction="wide") had some sorting problems when
	guessing time points (PR#7669)
   o	par() set 'xaxp' before 'xlog' and 'yaxp' before 'ylog',
	causing PR#831.
   o	The logic in tclRequire() to check the availability of a Tcl
	package turned out to be fallible.  It now uses a try()-and-see
	mechanism instead.
   o	Opening a unz() connection on a non-existent file left a file
	handle in use.
   o	"dist" objects of length 0 failed to print.
   o   INSTALL and the libR try harder to find a temporary directory
	(since there might be one left over with the same PID).
   o	acf() could cause a segfault with some datasets.  (PR#7771)
   o	summary(data.frame(mat = I(matrix(1:8, 4)))) does not go into
	infinite recursion anymore.
   o	writeBin() performed byte-swapping incorrectly on complex
	vectors, also swapping real and imaginary parts. (PR#7778)
   o	read.table() sometimes discarded as blank lines containing
	only white space, even if sep=",".

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2023-03-25 (土) 11:19:17