[R] making custom function compute/return multiple items
Gabor Grothendieck
ggrothendieck at myway.com
Sun Sep 26 01:28:02 CEST 2004
chumpy town <chumpytown <at> gmail.com> writes:
:
: Hello, I'm relatively new to R. I've read the intro guide, but I
: can't quite figure out how to:
:
: I have a function:
:
: Jcost <- function (theta, in, out) {
: a <- output - input %*% theta
: 1/2 * t(a) %*% a
: }
:
: where
: "theta" is a 2x1 matrix
: "in" is a 20x2 matrix
: "out" is a 20x1 matrix
: return value is a scaler
:
: This works well when I only want to compute given 1 theta matrix. How
: do I compute several (say N) 2x1 theta matrices and get back N scaler
: values?
Assuming `theta' is 2xN, apply the formula over the columns, i.e. dimension 2,
of `theta'.
By the way, note that `in', which is used above as a parameter to `Jcost', is
a reserved word in R and so should be avoided.
Jcost <- function(theta, input, output)
apply(as.matrix(theta), 2, function(theta)
1/2 * crossprod(output - input %*% theta))
Jcost(1:2, matrix(1:40,20), 1:20)
Jcost(3:4, matrix(1:40,20), 1:20)
# the following combines both of the above two lines into one:
Jcost(cbind(1:2, 3:4), matrix(1:40,20), 1:20)
More information about the R-help
mailing list