R 从自定义函数调用变量
这似乎是一个直截了当的问题,但我找不到答案 如何编写其中一个调用引用特定变量名的函数? 例如,如果我有一个数据帧:R 从自定义函数调用变量,r,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") 我可以编写一个简单的函数,将处理添加到数据帧中的另一
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")
我可以编写一个简单的函数,将处理添加到数据帧中的另一个变量,但这仅在d
中有一个名为“处理”的变量时才起作用
ff=function(data,treatment){data+treatment)}
ff(data,data$treatment)
这是可行的,但我想设置它,这样用户就不会在函数中调用data$Var。这就是您想要的吗
ff <- function(data, colname) {
data + data[[colname]]
}
ff( data, "treatment" )
ff ff=function(data,var1,var2){data[,var1]+data[,var2]}?这就是你要找的吗?当我运行时,我得到一个错误,变量没有找到以使用@JoshW.的解决方案,var1
和var2
需要作为字符串传递给函数,否则你需要deparse(replacement(var1))
。这是因为quote()
返回一个符号,您需要一个字符串。用deparse(substitute())
试试。
ff <- function(data, column) {
colname <- deparse(substitute(column))
data + data[[colname]]
}
ff( data, treatment )