[R] Question about error message - or is it a bug?

2006-11-10 Thread Carmen Meier
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
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.


Re: [R] Question about error message - or is it a bug?

2006-11-10 Thread Sundar Dorai-Raj

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]
 #--
 
 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)
 }