Извлечь градиент из производной команды - PullRequest
1 голос
/ 27 октября 2010

На днях коллега задал мне следующий вопрос. Как в следующем фрагменте кода извлечь градиент:

> x=5
> a = eval(deriv(~ x^3, "x"))
> a
[1] 125
attr(,"gradient")
      x
[1,] 75

Мой ответ был

>  attr(a, "gradient")[1]
[1] 75

Этот синтаксис кажется мне неуклюжим. Есть ли лучший способ извлечь градиент?

Ответы [ 2 ]

3 голосов
/ 27 октября 2010

Хотя это не лучше, чем ваш метод, вы можете создать функцию grad, которая принимает число с атрибутом градиента и возвращает значение градиента.

grad = function(x)attr(x,"gradient")[1]

grad(a)

, который теперь можно использовать повторно.

3 голосов
/ 27 октября 2010

Не уверен, что они считаются лучше , но:

with(attributes(a), gradient)

или

attributes(a)$gradient

- это альтернативы, которые возвращают атрибуты в виде списка, из которого можно выбрать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...