A colleague asked me the following question the other day. In the following piece of code, how do you extract the gradient:
> x=5
> a = eval(deriv(~ x^3, \
Not sure these count as better, but:
with(attributes(a), gradient)
or
attributes(a)$gradient
are alternatives that return the attributes as a list from which to select.
Though it is no better than your method, you could make a function, grad
, that takes a numeric with a gradient attribute and returns the gradient value.
grad = function(x)attr(x,"gradient")[1]
grad(a)
which is now reusable.