web-dev-qa-db-ja.com

Rの関数、データフレームと列名を渡す

重複の可能性:
data.frame列名を関数に渡す

入力の間にデータフレームと列名があるRで関数を作成しようとしています。コードは次のようになります。

DT_CAP_COLUMN  <- function(input_table,output_table,column_name,
                           cap_function,Parameter){
  input_table$column_name
  (...)
  return(1)
}

出力:

DT_CAP_COLUMN(churn_3,churn_4,'VOICE_REVENUE','STD',3)
input_table$column_name is NA

問題はinput_table$column_nameは認識されません。 input_tablechurn_3 だが input_table$column_name 戻り値 column_name not found

参照渡しパッケージを使用したり、変数として環境を渡したりせずにこれを行う方法はありますか?

12
jpsfer

角括弧のインデックスを使用して、data.frame内の列を間接的に参照できます。

サンプルデータ:

 dat <- data.frame(
     a = letters[1:3],
     b = LETTERS[4:6],
     c = 7:9
 )

関数:

 my.function <- function(data, col){
   data[, col]
 }

結果:

>  my.function(dat, "b" )
  b
1 D
2 E
3 F
>  my.function(dat, "c" )
  c
1 7
2 8
3 9
17
Andrie