0

たとえば、パッケージ ggplot2 では、次のように指定できますggplot2(data = mydataframe, aes(x=mycolumnname))。私はそのようなことをしようとしていますが、私が見つけた唯一の解決策は、名前を引用符で囲んだ二重括弧演算子を使用することです。たとえば、次を渡します。

a = myfunction(data = mydataframe, name = "mycolumnname") {
    ...
    col = mydataframe[[name]]
    ...
}

私はこれがうるさいことを知っていますが、ユーザーが引用符でパラメータ名を入力する必要がない場合にこれを行う方法はありますか? R関数でいつも見ています。

4

2 に答える 2

6

別のオプションは次を使用していmatch.callます:

  myfunction <- function(DF,col) {
    pars <- as.list(match.call()[-1])
    DF[,as.character(pars$col)]

  }

次に、これらのステートメントはすべて同等です。

  myfunction(dat,b)
  myfunction(dat,col=b)
  myfunction(dat,col="b")

もちろん、すべての関数引数に対してこれを一般化できます。

  myfunction <- function(DF,col) {
    pars <- as.list(match.call()[-1])
    get(as.character(pars$DF))[,as.character(pars$col)]
  }
于 2013-07-15T13:31:02.710 に答える