功能的R,传递一个数据帧和列名
问题描述:
可能重复:
Pass a data.frame column name to a function功能的R,传递一个数据帧和列名
我想创建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
+0
非常感谢。使用列号和列名完全按照我的想法工作。 – jpsfer
@Kevin好的地方。投票结束。 – Andrie
只因为我有同样的问题... – kmm
没有必要downvote欺骗,尤其是不适合新用户。 –