R では、相互作用項、二乗項などを含む式の右辺の記号導関数を取得する方法が必要です。
たとえば、次の 2 つの [edit:three] 式の右辺を x について微分できるようにしたいと考えています。
y~x+I(x^2)
y~x:z
編集:y~x*z
上記の 3 つの式を入力すると、それぞれ 1+2x、z、1+z を返す関数が欲しいです。
私は次のことを試しました:
f1<-y~x+I(x^2)
deriv(f1,"x")
## Error in deriv.formula(f1, "x") : Function 'I' is not in the derivatives table
f2<-y~x:z
deriv(f2,"x")
## Error in deriv.formula(f2, "x") : Function '`:`' is not in the derivatives table
R に I(x^2) (または同様に I(x*z) など) を x^2 (それぞれ x*z)、x:z を x*z (導関数を計算する目的で、x*z (式の意味で) x+z+x*z (数学の意味で) として?
第二に、deriv() から出力を取得し、それを数式の右辺のように整形する方法はありますか? 特に、D() がこの問題を軽減し、希望する形式で出力を生成することはわかっています (ただし、D() は数式を入力として処理できません)。導関数を取得したい変数ごとに D() を何度も適用することでこれを回避できますが、そのようなすべての変数の文字列を単純に入力し、配置に適した出力を受け取るとよいでしょう。式の右辺。
ありがとうございました!