Skip to content

R-alpha: A few bugs in R-0.50-a3.

2 messages · Patrick Lindsey, Kurt Hornik

#
A few problems in R-0.50-a3 (which were also in R-0.49):

1)
y <- c(10,11,12,13,14,NA,NA)
n <- length(y)
missed <- (1:n)[is.na(y)]
notmissed <- (1:n)[!is.na(y)]
blocks <- cut(missed,breaks=c(0,notmissed,n+1))
a <- function(v) {
	q <- range(v)
	c(q[1]-1,q[2]+1)
}
brackets <- tapply(missed,blocks,a)

This codes gives the following in S:
$"0+ thru 1":
NULL

$"1+ thru 2":
NULL

$"2+ thru 3":
NULL

$"3+ thru 4":
NULL

$"4+ thru 5":
NULL

$"5+ thru 8":
[1] 5 8
And the following in R:
Error: names attribute must be same length as the vector

I also had similar problems when using "lm" with data containing NA's
but could not find back a precise example...

2)
b <- list(2)
names(b) <- "lty"
a <- function(...) {
	par(c(...,b))
	par()
}
a()


The following is obtained in S:
$"1em":
[1] 0.03150623 0.05075211

$adj:
[1] 0.5

$ask:
[1] F

$bty:
[1] "o"

$cex:
[1] 1
#
I think the patch below (which should make it into the next set of
patches) fixes that.

(Except for the differences in cut() ...)

--- src/library/base/funs/tapply.orig	Fri Feb  7 01:08:31 1997
+++ src/library/base/funs/tapply	Sun Aug 10 21:57:31 1997
@@ -14,7 +14,7 @@
 		index <- as.factor(INDEX[[i]])
 		if (length(index) != nx) 
 			stop("arguments must have same length")
-		namelist[[i]] <- levels(index)
+		namelist[[i]] <- unique(levels(index)[index])
 		extent[[i]] <- nlevels(index)
 		group <- group + ngroup * (codes(index) - 1)
 		ngroup <- ngroup * nlevels(index)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-devel-request@stat.math.ethz.ch
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-