Re: [R] Question about error message - or is it a bug?
Carmen Meier said the following on 11/10/2006 9:46 AM: > Hi to all ... the same code, but another question. > > I changed only the type='n' to type='l' and debugged the function xy.coords. > with type = 'l' : > there are the correct values of x and y inside the function xy.coords > but the y value is filled with NA seems that the length is matching now > because of the NAs > > with type = 'n' : > there are the wrong values of x in the function xy.coords > and the y value is not filled with NA > So there is a length mismatch additionally to the wrong x values > > Maybe anybody could evaluate whether this is an error (some kind of > misunderstanding) from me or a bug > > Regards Carmen > see codes below Hi, Carmen The problem is not in xy.coords, but in chron:::plot.times. Why do you set y to c(0, 10)? This is not the same length as x which is why you are getting this error. Since it's not clear what type of plot you expect, it's difficult to comment further. Try: debug(chron:::plot.times) to see how your function call is being interpreted by the code. Also, in the future, please tell us where to find non-base functions such as "times". Thanks, --sundar > > #--- Code --- > > > time <- > c("2:25:00","2:26:00","2:27:00","2:28:00","2:29:00","2:30:00","2:31:00", > "2:32:00","2:33:00","2:34:00","2:35:00","2:36:00","2:37:00","2:38:00", > > "2:39:00","2:40:00","2:41:00","2:42:00","2:43:00","2:44:00","2:45:00", > > "2:46:00","2:47:00","2:48:00","2:49:00","2:50:00","2:51:00","2:52:00", > > "2:53:00","2:54:00","2:55:00","2:56:00","2:57:00","2:58:00","2:59:00", > > "3:00:00","3:01:00","3:02:00","3:03:00","3:04:00","3:05:00","3:06:00", > > "3:07:00","3:08:00","3:09:00","3:10:00","3:11:00","3:12:00","3:13:00", > "3:14:00") > y <- c(0,10) > plot(times(time), y, type='n') > > > #-- Debugging --- > debug(xy.coords) > plot(times(time), y, type='l') > > > debug: if (is.null(y)) { > ylab <- xlab > if (is.language(x)) { > if (inherits(x, "formula") && length(x) == 3) { > ylab <- deparse(x[[2]]) > xlab <- deparse(x[[3]]) > y <- eval(x[[2]], environment(x), parent.frame()) > x <- eval(x[[3]], environment(x), parent.frame()) > } > else stop("invalid first argument") > } > else if (inherits(x, "ts")) { > y <- if (is.matrix(x)) > x[, 1] > else x > x <- stats::time(x) > xlab <- "Time" > } > else if (is.complex(x)) { > y <- Im(x) > x <- Re(x) > xlab <- paste("Re(", ylab, ")", sep = "") > ylab <- paste("Im(", ylab, ")", sep = "") > } > else if (is.matrix(x) || is.data.frame(x)) { > x <- data.matrix(x) > if (ncol(x) == 1) { > xlab <- "Index" > y <- x[, 1] > x <- seq_along(y) > } > else { > colnames <- dimnames(x)[[2]] > if (is.null(colnames)) { > xlab <- paste(ylab, "[,1]", sep = "") > ylab <- paste(ylab, "[,2]", sep = "") > } > else { > xlab <- colnames[1] > ylab <- colnames[2] > } > y <- x[, 2] > x <- x[, 1] > } > } > else if (is.list(x)) { > xlab <- paste(ylab, "$x", sep = "") > ylab <- paste(ylab, "$y", sep = "") > y <- x[["y"]] > x <- x[["x"]] > } > else { > if (is.factor(x)) > x <- as.numeric(x) > xlab <- "Index" > y <- x > x <- seq_along(x) > } > } > Browse[1]> > debug: if (inherits(x, "POSIXt")) x <- as.POSIXct(x) > Browse[1]> > debug: if (length(x) != length(y)) { > if (recycle) { > if ((nx <- length(x)) < (ny <- length(y))) > x <- rep(x, length.out = ny) > else y <- rep(y, length.out = nx) > } > else stop("'x' and 'y' lengths differ") > } > Browse[1]> x > [1] 0.1006944 0.1013889 0.1020833 0.1027778 0.1034722 0.1041667 > 0.1048611 0.106 0.1062500 > [10] 0.1069444 0.1076389 0.108 0.1090278 0.1097222 0.1104167 > 0.111 0.1118056 0.1125000 > [19] 0.1131944 0.1138889 0.1145833 0.1152778 0.1159722 0.117 > 0.1173611 0.1180556 0.1187500 > [28] 0.119 0.1201389 0.1208333 0.1215278 0.122 0.1229167 > 0.1236111 0.1243056 0.125 > [37] 0.1256944 0.1263889 0.1270833 0.128 0.1284722 0.1291667 > 0.1298611 0.1305556 0.1312500 > [46] 0.1319444 0.1326389 0.133 0.1340278 0.1347222 > attr(,"format") > [1] "h:m:s" > Browse[1]> y > [1] 0 10 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA > NA NA NA NA NA NA NA NA > [31] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA > Browse[1]> > #---
[R] Question about error message - or is it a bug?
Hi to all ... the same code, but another question. I changed only the type='n' to type='l' and debugged the function xy.coords. with type = 'l' : there are the correct values of x and y inside the function xy.coords but the y value is filled with NA seems that the length is matching now because of the NAs with type = 'n' : there are the wrong values of x in the function xy.coords and the y value is not filled with NA So there is a length mismatch additionally to the wrong x values Maybe anybody could evaluate whether this is an error (some kind of misunderstanding) from me or a bug Regards Carmen see codes below #--- Code --- time <- c("2:25:00","2:26:00","2:27:00","2:28:00","2:29:00","2:30:00","2:31:00", "2:32:00","2:33:00","2:34:00","2:35:00","2:36:00","2:37:00","2:38:00", "2:39:00","2:40:00","2:41:00","2:42:00","2:43:00","2:44:00","2:45:00", "2:46:00","2:47:00","2:48:00","2:49:00","2:50:00","2:51:00","2:52:00", "2:53:00","2:54:00","2:55:00","2:56:00","2:57:00","2:58:00","2:59:00", "3:00:00","3:01:00","3:02:00","3:03:00","3:04:00","3:05:00","3:06:00", "3:07:00","3:08:00","3:09:00","3:10:00","3:11:00","3:12:00","3:13:00", "3:14:00") y <- c(0,10) plot(times(time), y, type='n') #-- Debugging --- debug(xy.coords) plot(times(time), y, type='l') debug: if (is.null(y)) { ylab <- xlab if (is.language(x)) { if (inherits(x, "formula") && length(x) == 3) { ylab <- deparse(x[[2]]) xlab <- deparse(x[[3]]) y <- eval(x[[2]], environment(x), parent.frame()) x <- eval(x[[3]], environment(x), parent.frame()) } else stop("invalid first argument") } else if (inherits(x, "ts")) { y <- if (is.matrix(x)) x[, 1] else x x <- stats::time(x) xlab <- "Time" } else if (is.complex(x)) { y <- Im(x) x <- Re(x) xlab <- paste("Re(", ylab, ")", sep = "") ylab <- paste("Im(", ylab, ")", sep = "") } else if (is.matrix(x) || is.data.frame(x)) { x <- data.matrix(x) if (ncol(x) == 1) { xlab <- "Index" y <- x[, 1] x <- seq_along(y) } else { colnames <- dimnames(x)[[2]] if (is.null(colnames)) { xlab <- paste(ylab, "[,1]", sep = "") ylab <- paste(ylab, "[,2]", sep = "") } else { xlab <- colnames[1] ylab <- colnames[2] } y <- x[, 2] x <- x[, 1] } } else if (is.list(x)) { xlab <- paste(ylab, "$x", sep = "") ylab <- paste(ylab, "$y", sep = "") y <- x[["y"]] x <- x[["x"]] } else { if (is.factor(x)) x <- as.numeric(x) xlab <- "Index" y <- x x <- seq_along(x) } } Browse[1]> debug: if (inherits(x, "POSIXt")) x <- as.POSIXct(x) Browse[1]> debug: if (length(x) != length(y)) { if (recycle) { if ((nx <- length(x)) < (ny <- length(y))) x <- rep(x, length.out = ny) else y <- rep(y, length.out = nx) } else stop("'x' and 'y' lengths differ") } Browse[1]> x [1] 0.1006944 0.1013889 0.1020833 0.1027778 0.1034722 0.1041667 0.1048611 0.106 0.1062500 [10] 0.1069444 0.1076389 0.108 0.1090278 0.1097222 0.1104167 0.111 0.1118056 0.1125000 [19] 0.1131944 0.1138889 0.1145833 0.1152778 0.1159722 0.117 0.1173611 0.1180556 0.1187500 [28] 0.119 0.1201389 0.1208333 0.1215278 0.122 0.1229167 0.1236111 0.1243056 0.125 [37] 0.1256944 0.1263889 0.1270833 0.128 0.1284722 0.1291667 0.1298611 0.1305556 0.1312500 [46] 0.1319444 0.1326389 0.133 0.1340278 0.1347222 attr(,"format") [1] "h:m:s" Browse[1]> y [1] 0 10 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA [31] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA Browse[1]> #-- debug(xy.coords) plot(times(time), y, type='n') debug: if (length(x) != length(y)) { if (recycle) { if ((nx <- length(x)) < (ny <- length(y))) x <- rep(x, length.out = ny) else y <- rep(y, length.out = nx) } else stop("'x' and 'y' lengths differ") } Browse[1]> debug: if (recycle) { if ((nx <- length(x)) < (ny <- length(y))) x <- rep(x, length.out = ny) else y <- rep(y, length.out = nx) } else stop("'x' and 'y' lengths differ") Browse[1]> Fehler in xy.coords(x, y, xlabel, ylabel, log) : 'x' and 'y' lengths differ > x [1] 2 1 0 0 0 1 0 0 0 3 3 3 > y [1] 0 10 __ R-help@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help