# [R] symbolic matrix elements...

Tony Plate tplate at acm.org
Mon Sep 18 19:54:10 CEST 2006

```If I construct the matrix by list()ing together the expressions rather
than c()ing, then it works OK:

> x <- matrix(list( expression(x3-5*x+4), expression(log(x2-4*x))))
> x[1,1]
[[1]]
expression(x3 - 5 * x + 4)

> x[[1,1]]
expression(x3 - 5 * x + 4)
> D(x[[1,1]], "x")
-5
>

The reason c() doesn't work properly here might have something to do
with it creating a language object of an unconventional type:

> c( expression(x3-5*x+4), expression(log(x2-4*x)))
expression(x3 - 5 * x + 4, log(x2 - 4 * x))
> expression(x3-5*x+4)
expression(x3 - 5 * x + 4)
>

Using list() with language objects is much safer if you just want to
make lists of them.

-- Tony Plate

Evan Cooch wrote:
>
> Eik Vettorazzi wrote:
>
>>test=matrix(c( expression(x^3-5*x+4), expression(log(x^2-4*x))))
>>works.
>
> Well, not really (or I'm misunderstanding). Your code enters fine (no
> errors), but I can't access individual elements - e.g., test[1,1] gives
> me an error:
>
>  > test=matrix(c( expression(x^3-5*x+4), expression(log(x^2-4*x))))
>  > test[1,1]
> Error: matrix subscripting not handled for this type
>
> Meaning...what?
>
>
>>btw. you recieved an error because D expects an expression and you
>>offered a list
>
>
> OK - so why then are each of the elements identified as an expression
> which I print out the vector? Each element is reported to be an
> expression. OK, if so, then I remain puzzled as to how this is a 'list'.
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help