関数を書く方法を知っている人はいませんか?Fは、関数呼び出し(たとえばmean(x = 1:10))を引数としてとり、機能は呼び出された(平均)か?関数呼び出しから関数呼び出し名を抽出する
デ・解析は非常に助けていないようです前に私の最高の試みは、これまで
式にX1(関数呼び出し)を変更(function(x1){
return(deparse(substitute(x1)))
})(mean(x = 1:10))
### 'mean(x = 1:10)'
以下に要約されています
(function(x1){
return(deparse(as.expression(substitute(x1))))
})(mean(x = 1:10))
# "expression(mean(x = 1:10))"
を返します可能であれば、匿名関数を引数として使用できるようにしたいので、Fは、(function(x)print(x))(1)に対して(function(x)print(x) )。説明が必要な場合は、自由にコメントしてください。ありがとう。
edit1:私は最初のかっこをチェックして、その前にコードを切り捨てることは避けたいと思います( "平均(x = 1:10)"の場合は "平均"を返します)ジョシュ・オブライエンの答えは完璧だった:
F <- function(x) deparse(substitute(x)[[1]])
は、それが動作され、上記の条件を満たした機能F悪い(Fun_nAmeは」実際に
質問の回答R.における法的な関数名ですバイナリ演算子、標準関数、および匿名関数に対してうまくいきます。