隐藏.Rprofile中的某些函数

8yoxcaq7  于 2023-07-31  发布在  其他
关注(0)|答案(4)|浏览(96)

我的.Rprofile文件中有几个函数:

f1 <- function() { ...... }
f2 <- function() { ...... }
g <- function() { ...... }

字符串
函数f1f2g的助手函数,我不希望它们在全局环境中。我该怎么办?
解决方案是:

g <- function() { 
  f1 <- function() { ...... }
  f2 <- function() { ...... }
  ......
}


但我不喜欢

thigvfpy

thigvfpy1#

我将在对local()的调用中包含所有内容(并显式地将g分配给全局环境)。这样,.Rprofile是自包含的,不依赖于外部代码。

# .Rprofile
local({
  f1 <- function() "foo"
  f2 <- function() "bar"
  assign("g", function() c(f1(), f2()), envir = globalenv())
})

字符串

abithluo

abithluo2#

这就是我们的包裹。构建一个包含函数的包并将其加载到.Rprofile中。

ryevplcw

ryevplcw3#

我想我找到解决办法了。我把f1f2放在另一个文件夹中的一个文件中(在inst文件夹中,因为我在一个包中),我在.Rprofile中这样做:

g <- function() {
  source("other/folder/file.R", local = TRUE)
  ......
}

字符串
然后,当我运行g时,函数f1f2不会出现在全局环境中。

8i9zcol2

8i9zcol24#

我不确定是否有一些明显的缺点,但也许你可以在函数名的开头添加一个.,以便在全局环境中隐藏它们:

.f1 <- function(...) {...}
.f2 <- function(...) {...}
g <- function(...) {...}

字符串

相关问题