重複の可能性:
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_table
はchurn_3
だが input_table$column_name
戻り値 column_name not found
。
参照渡しパッケージを使用したり、変数として環境を渡したりせずにこれを行う方法はありますか?
角括弧のインデックスを使用して、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