考えられるタイトルよりも長い問題が長いため、タイトルはわかりやすいものではありません。関数内からオブジェクト名を取得する
他の関数の引数として使用できる他の関数からオブジェクト名を取得する関数が必要です。ここでは必要最小限の試みです:
grab <- function(x) {
as.character(substitute(x))
}
FUN <- function(foo, bar = grab(foo)) {
bar
}
FUN(mtcars)
ここで私のはFUN
は、文字列「mtcars」を返すようにしたいが、それは「foo」を返します。どのようにこれを行うグラブ関数を作ることができましたか(私はこれをデフォルトのtxt/csvファイルに使用するので、これをやりたいのですが)便利な設定です
いくつか失敗しましたしかし、私は)一般的なグラブ機能を持つようにしたい:
FUN2 <- function(foo, bar = as.character(substitute(bar))) {
bar
}
FUN2(mtcars)
#==================
FUN3 <- function(foo, bar) {
if(missing(bar)) bar <- foo
as.character(substitute(bar))
}
FUN3(mtcars)
実生活っぽい例:
real_example <- function(obj, file = grab(obj)) {
write.csv(obj, file = sprintf("%s.csv", file))
}
タイトルを編集または編集して、これをより明確にしてください。 –
この質問は非常によく似ています:http://stackoverflow.com/questions/5754367/using-substitute-to-get-argument-name-with – Frank
@フランクあなたはこれらの応答のいずれかを稼働させましたか? –