左側に文字、右側に式を取り、連結された数式オブジェクトを返す中置関数 %~% を定義しようとしています。"y" %~% x + z
だから私が返したいものy ~ x + z
。
ただし、私の関数 (以下) は+
、シンボリック数式演算子としての使用に失敗し、代わりに算術演算子にデフォルト設定されます。明らかに、~
中置関数はこれを達成しますが、それは原始的な関数であるため、コードをスワイプすることはできず、それを関数定義に組み込んで目的の結果を得る方法がわかりません。
`%~%` <- function(x, y) {
y <- deparse(substitute(y))
formula(paste(x, "~", y)
}
~
解決策は、関数を呼び出すときに演算子を使用することです。
"y" %~%~ x + z
+
しかし、関数定義で を算術演算子として評価しないようにして、 を簡単に使用できるようにする方法があるかどうか疑問に思っています%~%
。