从自定义函数调用变量

时间:2015-05-26 20:05:07

标签: r

这似乎是一个直截了当的问题,但我无法找到答案...

如何编写其中一个调用引用特定变量名称的函数?

例如,如果我有一个数据框:

data=structure(list(x = 1:10, treatment = c(1L, 2L, 1L, 2L, 1L, 2L, 
1L, 2L, 1L, 2L)), .Names = c("x", "treatment"), row.names = c(NA, 
-10L), class = "data.frame")

我可以编写一个简单的函数来为数据框中的另一个变量添加处理,但这只有在有一个名为" treatment"的变量时才有效。在d

ff=function(data,treatment){data+treatment)}
ff(data,data$treatment)

这有效,但我想设置它,这样用户就不会在函数中调用数据$ Var。

1 个答案:

答案 0 :(得分:1)

这是你想要的吗?

ff <- function(data, colname) {
   data + data[[colname]]
}
ff( data, "treatment" )

ff <- function(data, column) {
  colname <- deparse(substitute(column))
  data + data[[colname]]
}
ff( data, treatment )

(如果有人尝试ff(data, 1:10)

之类的话会导致很难找到错误