bug in all.equal.character (PR#1767)
a296180@agate.fmr.com
a296180@agate.fmr.com
Wed, 10 Jul 2002 14:52:17 +0200 (MET DST)
There is a bug in all.equal.character:
> all.equal.character(c("A", "B", "C"), c("A", "B", "C"))
[1] TRUE
> all.equal.character(c("A", "B", "C"), c("A", "B", NA))
Error in sum(out) : Object "out" not found
> traceback()
3: sum(out)
2: paste("`is.NA' value mismatches:", sum(is.na(current)), "in current,",
sum(out), " in target")
1: all.equal.character(c("A", "B", "C"), c("A", "B", NA))
>
It appears that there is a typo in all.equal.character. "out" is never created.
> all.equal.character
function (target, current, ...)
{
lt <- length(target)
lc <- length(current)
if (lt != lc) {
msg <- paste("Lengths (", lt, ", ", lc, ") differ (string compare on first ",
ll <- min(lt, lc), ")", sep = "")
ll <- seq(length = ll)
target <- target[ll]
current <- current[ll]
}
else msg <- NULL
nas <- is.na(target)
if (any(nas != is.na(current)))
return(paste("`is.NA' value mismatches:", sum(is.na(current)),
"in current,", sum(out), " in target"))
ne <- !nas & (target != current)
if (!any(ne) && is.null(msg))
TRUE
else if (any(ne))
c(msg, paste(sum(ne), "string mismatches"))
else msg
}
>
Perhaps "sum(out)" should be "sum(is.na(target))"? That change would lead to:
> all.equal.character(c("A", "B", "C"), c("A", "B", NA))
[1] "`is.NA' value mismatches: 1 in current, 0 in target"
>
> R.version
_
platform sparc-sun-solaris2.6
arch sparc
os solaris2.6
system sparc, solaris2.6
status
major 1
minor 5.1
year 2002
month 06
day 17
language R
>
Apologies if this is a mistake on my part.
Regards,
Dave Kane
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
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
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._