Подтвердить что ты не робот

Функция в R, передача данных и имя столбца

Возможный дубликат:
Передайте имя столбца data.frame в функцию

Я пытаюсь создать функцию в R, где между входами есть dataframe и имя столбца. Код будет примерно таким:

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.

Есть ли все-таки сделать это без использования пакетов pass-by-reference или промежуточных сред в качестве переменных?

4b9b3361

Ответ 1

Вы можете косвенно ссылаться на столбец в 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