Функция в 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 или промежуточных сред в качестве переменных?
Ответы
Ответ 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