如何从R中的两个源文件中调用两个具有相同名称的函数?

时间:2015-07-24 17:24:24

标签: r

我有两个文件,例如" aa.R"和" bb.R",都有一个功能" foo()"。

如何从控制台调用同名的两个函数?

例如在" aa.R"

hi <- function(){
  print("hi, aa")
  }

in&#34; bb.R&#34;

hi <- function(){
  print("hi, bb")
  }

我尝试了以下内容:

source("aa.R")
source("bb.R")
aa::hi()

但它不起作用。如何从&#34; aa.R&#34;?

获取hi()功能

2 个答案:

答案 0 :(得分:3)

你没有。没有认真,只是没有。你只是要求不可复制的错误和不必要的混淆。

更改两个名称中的一个。或者,在调用它们时重命名它们,因此如果它们被覆盖则无关紧要。

Hello world

答案 1 :(得分:2)

source进入不同的环境:

aa <- new.env()
bb <- new.env()

source(textConnection('hi <- function(){
  print("hi, aa")
}'), local = aa)

source(textConnection('hi <- function(){
  print("hi, bb")
}'), local = bb)

aa$hi()
#[1] "hi, aa"
bb$hi()
#[1] "hi, bb"

但是,我建议您认真考虑从两个文件中构建两个包。然后你可以使用::