我正在尝试在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
。
无论如何都可以这样做而不必使用pass-by-references包或将环境作为变量传递?
答案 0 :(得分:16)
您可以使用方括号索引间接引用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