R 将对象(DF)传递给脚本中存储的自定义函数

R 将对象(DF)传递给脚本中存储的自定义函数,r,R,在给定设置的情况下,如何将预先存在的对象(如DF)传递给自定义函数(见下文)? 或者,我是否需要以不同的方式设置自定义函数 我的函数驻留在一系列*.R脚本中。 我在.Rprofile中找到函数的来源: .env$fxShortName <- function(){ source("C:\\path\\to\\scriptFile.R") } .env$`%>>%` <- function(expr, x) { x <- substitute(x) call &l

在给定设置的情况下,如何将预先存在的对象(如DF)传递给自定义函数(见下文)? 或者,我是否需要以不同的方式设置自定义函数

我的函数驻留在一系列*.R脚本中。 我在.Rprofile中找到函数的来源:

.env$fxShortName <- function(){
source("C:\\path\\to\\scriptFile.R")
}
.env$`%>>%` <- function(expr, x) {
x <- substitute(x) 
call <- match.call()[-1] 
fun <- function() {NULL} 
body(fun) <- call$expr 
makeActiveBinding(sym = deparse(x), fun = fun, env = parent.frame())
invisible(NULL)
}
.env$mySamplefx <- function(){
source("C:\\path\\to\\myfx.R")
}
示例代码:

myfx <- function(expr, x) {
x <- substitute(x)
call <- match.call()[-1]
fun <- function() {NULL}
body(fun) <- call$expr
print(body(fun))}

myfx我无法理解这一点。你只是想把一个值传递给一个函数?可以通过将对象作为参数传递给函数来实现这一点。您试图解决的问题不是很清楚。如果“值”是指整个DF,那么是的。如果函数是在R会话期间手动定义的,或者完全在.Rprofile中定义的,我知道如何将DF传递给函数(请参见“不完全解决方案”下的第1点和第3点)。因此,当a)函数体在.R文件中,b)函数源()在启动时在.Rprofile中创建.R配置文件时,将值传递给自定义函数。也就是说,“我的函数驻留在一系列*.R脚本中。我在.Rprofile中获取函数的源代码”。
myfx <- function(expr, x) {
x <- substitute(x)
call <- match.call()[-1]
fun <- function() {NULL}
body(fun) <- call$expr
print(body(fun))}
.env$mySamplefx <- function(){
source("C:\\path\\to\\myfx.R")
}