Hi Henrik,

On 10/23/2014 08:10 PM, Henrik Bengtsson wrote:
Assigning one or more values to a vector/matrix/array x for which
length(x) == 0 gives no error, e.g.

x <- integer(0)
x[] <- 1:2

x <- matrix(nrow=0, ncol=1)
x[] <- 1:2
x[,1] <- 1:2

x <- array(dim=c(0,1,1))
x[] <- 1:2
x[,1,1] <- 1:2

whereas

x <- integer(1)
x[] <- 1:2
Warning message:
In x[] <- 1:2 :
   number of items to replace is not a multiple of replacement length
x <- matrix(nrow=1, ncol=1)
x[] <- 1:2
Warning message:
In x[] <- 1:2 :
   number of items to replace is not a multiple of replacement length
x[,1] <- 1:2
Error in x[, 1] <- 1:2 :
   number of items to replace is not a multiple of replacement length
x <- array(dim=c(1,1,1))
x[] <- 1:2
Warning message:
In x[] <- 1:2 :
   number of items to replace is not a multiple of replacement length
x[,1,1] <- 1:2
Error in x[, 1, 1] <- 1:2 :
   number of items to replace is not a multiple of replacement length

Is this intended by design or is it a bug that should be reported?

Since [<- supports truncating of the right value, why an exception
should be made when the left vector has length 0?

Also note that these warnings or errors are complaining that the number
of items to replace (left length) is not a multiple of replacement
length (right length). This suggests that when the left length is a
multiple of the right length, everything is fine.
And this is actually the case when the left length is 0. Because
0 is a multiple of anything. So in that case, the right value is
truncated to length 0 and no warning is issued. Makes sense to me.

Cheers,
H.


/Henrik

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel


--
Hervé Pagès

Program in Computational Biology
Division of Public Health Sciences
Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N, M1-B514
P.O. Box 19024
Seattle, WA 98109-1024

E-mail: hpa...@fhcrc.org
Phone:  (206) 667-5791
Fax:    (206) 667-1319

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to