関数内の変数名の入力を扱う方法について知りたいと思います。例えば、私はこのような機能を書かれている:入力変数名の扱いについてR
dataframe
は、入力データフレームである
bin_multi <- function(y, dataframe, sel = NULL){
if(!is.null(sel)) {
dataframe <- dataframe[,sel]}
else {
dataframe <- dataframe[!y]}
}
、y
は、データフレーム内のターゲット変数であり、sel
は、例えば、sel = c(1,2,3)
dataframe
から列を選択することです。
この機能の目的は、単に、所与sel
とdataframe
のサブセットを取り、sel
が与えられていない場合、dataframe
からy
を目的変数を排除することです。
私の質問は、この機能でy
にどうすればいいですか?入力では、y
が変数の名前です。 deparse()
でこの問題を解決できますか?
ありがとうございます。
yを文字ベクトルとして入力し、次に 'grep'または' grepl': 'dataframe < - dataframe [!grepl(y、names(dataframe)、fixed = TRUE)]'を使用します。 – lmo
@lmoありがとう!しかし、文字としてyを入力しない場合は?これは完全な関数のほんの一部であり、yが文字として入力された場合、それは残りの部分でより扱いにくくなります。 – user95902
どのように扱いにくくなるのかは不明ですが、関数の先頭にyのコピーを作成し、これをmyY < - dataframe [、y] 'に使用するのが簡単な解決策です。次に、コード内でyをmyYに置き換えます。 – lmo