Skip to content
Prev 82443 / 398506 Next

kronecker(... , make.dimnames=TRUE)

Not sure whether or not this is a good idea but note that
the techniques discussed in the recent thread:

	"Change labels of x-axes in Plot of stl() function?"

can be used here too. e.g.

library(proto)
kronecker <- function(...) {
	outer <- function(x, y, FUN, sep) {
		sepchar <- if(any(nchar(x)>0) & any(nchar(y)>0))  ":" else ""
		base::outer(x, y, FUN, sep = sepchar)
	}
	with( proto(kronecker = base:::kronecker), kronecker(...) )
}

# test
a <- structure(1:6, .Dim = 3:2, .Dimnames = list(letters[1:3], LETTERS[1:2]))
b <- c(x=1,y=2)
kronecker(a,b,make.dimnames=TRUE)

or slightly longer and somewhat awkward since it involves explicit
manipulation of environments (but with the advantage of no dependence
on another package):

kronecker <- function(...) {
	outer <- function(x, y, FUN, sep) {
		sepchar <- if(any(nchar(x)>0) & any(nchar(y)>0))  ":" else ""
		base::outer(x, y, FUN, sep = sepchar)
	}
	kronecker <- base::kronecker
	environment(kronecker) <- environment()
	kronecker(...)
}
On 12/8/05, Robin Hankin <r.hankin at noc.soton.ac.uk> wrote: