定义一个.R文件中的所有函数,从另一个.R文件调用它们。如果可能的话,怎么做?
如何在另一个文件(例如xyz.R)中调用abc.R文件中定义的函数 一个补充问题是,如何从R提示符/命令行调用abc.R中定义的函数?您可以调用定义一个.R文件中的所有函数,从另一个.R文件调用它们。如果可能的话,怎么做?,r,file,scope,namespaces,user-defined-functions,R,File,Scope,Namespaces,User Defined Functions,如何在另一个文件(例如xyz.R)中调用abc.R文件中定义的函数 一个补充问题是,如何从R提示符/命令行调用abc.R中定义的函数?您可以调用source(“abc.R”),然后调用source(“xyz.R”)(假设这两个文件都在您当前的工作目录中) 如果abc.R是: fooABC <- function(x) { k <- x+1 return(k) } 即使存在周期性依赖,这也会起作用 例如,如果abc.R是: fooABC <- function(
source(“abc.R”)
,然后调用source(“xyz.R”)
(假设这两个文件都在您当前的工作目录中)
如果abc.R是:
fooABC <- function(x) {
k <- x+1
return(k)
}
即使存在周期性依赖,这也会起作用
例如,如果abc.R是:
fooABC <- function(x) {
k <- barXYZ(x)+1
return(k)
}
barABC <- function(x){
k <- x+30
return(k)
}
fooXYZ <- function(x) {
k <- fooABC(x)+1
return(k)
}
barXYZ <- function(x){
k <- barABC(x)+20
return(k)
}
细微差别:你只需要
一次源代码一个文件/函数。然后它就在你的工作区中,你可以随时使用它。如果你改变了它,你就必须重新源代码。如果你的函数在转换代码后发生了很大的变化,把它们都放在一个文件中,每次都只需源代码。你也可以有一个单独的源代码较小的文件,1.来源较大的函数集合,2.运行您的测试用例。在R中,有很多方法可以安排您的工作流程。感谢您的细微差别,Bryan。我将此演示为两种场景,大多数过程语言的人可能会对此感到好奇。就好像这些文件被编辑以添加循环依赖项一样在这种情况下,他们需要获得资源(如图所示)&周期不会影响文件的来源。谢谢你们两位。@A_K:非常感谢你们突出了周期依赖性问题。为我节省了几个小时的时间翻阅“可以改进”R文档:)退休后我才开始学习R。这太棒了!
fooABC <- function(x) {
k <- barXYZ(x)+1
return(k)
}
barABC <- function(x){
k <- x+30
return(k)
}
fooXYZ <- function(x) {
k <- fooABC(x)+1
return(k)
}
barXYZ <- function(x){
k <- barABC(x)+20
return(k)
}
> source("abc.R")
> source("xyz.R")
> fooXYZ(3)
[1] 55
>