Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 从自定义函数调用变量_R - Fatal编程技术网

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 )