这似乎是一个直截了当的问题,但我无法找到答案...
如何编写其中一个调用引用特定变量名称的函数?
例如,如果我有一个数据框:
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。
答案 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)
)