find_terms_JPH {lazy.symbolic}R Documentation

式を項(+ または - で区切られた項)に分解

Description

英語のヘルプファイルは: find_terms

Arguments

expr

式の文字列(スカラー、ベクトル、または行列)

markso

= 0 の場合は特殊演算子をマークしない

sort

= 1 の場合は項を名前順にソート

debug

= 1 の場合は中間結果を表示

Details

i 番目の項は、前置演算子付きで次のように得られます: substr( expr0, fromto[i,1], fromto[i,2] ) ここで expr0 は空白を圧縮した式です。 i 番目の項に対応する前置演算子は oper[i] です。 元の式は次のいずれかの方法で再構成できます:

res <- find_terms( expr )
expr <- paste( mapply( paste, res$oper, res$term, sep="" ), collapse="" )

または expr <- paste( paste( res$oper, res$term, sep="" ), collapse="" ) または expr <- paste( apply(res$tab,1, function(x){paste(x,collapse="")} ) , collapse="") 不均衡な括弧がある場合は無視されますが、valid フラグに記録されます。
項を名前順にソートすることも可能です:

res <- find_terms("c-a+d-b", sort=1)
exprs <- paste( paste( res$oper, res$term, sep="" ), collapse="" )

Value

リストを返します。内容は以下の通りです:
項数(nterms)、
演算子のベクトル(oper)、
項のベクトル(term)、
各 oper+term の位置(fromto)、
演算子と項の行列(tab)、
各項の有効フラグ(valid)、
入力式が再構成されたものと等しい場合の ok フラグ(ok=1)。

Examples

res = find_terms( "-((a)) - c + ((a)+(b)) + (a-b) + 1 - (x-y)*(((z+1)))" )
paste( apply(res$tab,1, function(x){paste(x,collapse="")} ), collapse="")
find_terms("-a")
find_terms("x*a/(1-y)")
find_terms("-a+b-0")
find_terms("(A%p%B)%*%C-D%*%diag(X) %m% E")
find_terms(Simplify("-a+b-0"))
find_terms("(((b)+c")
find_terms(")*c+5")


[Package lazy.symbolic version 1.0.0.20250830 ]