r - 在删除对象期间,将用户定义的函数保留在全局环境中
问题描述
问:如何控制自定义函数的删除(和保存)?
到目前为止我已经尝试过:
有人建议我在每个函数的开头添加一个点 [.],并被告知不会删除这些函数。测试时,尽管盯着点,但该功能被删除。
要求:
所有“非功能”都应由 [rm] 处理。
由于自动化,该过程需要能够由 R 基础从终端触发。解决方案仅在 Rstudio 中有效是不够的。
由于保持解决方案标准化,要使用的全球环境。
如果可能,应该能够定义要保留/删除的功能。
预期结果:
- 不应删除示例中的任何函数。
下面是示例代码:
# Create 3 object variables.
a <- 1
b <- 2
c <- 3
# Create 3 functions.
myFunction1 <- function() {}
myFunction2 <- function() {}
myFunction3 <- function() {}
# Remove all from global.env.
# Keep the ones specified below.
rm(list = ls()[! ls() %in% c(
"a",
"c"
)
]
)
解决方案
您可以使用ls.str
指定mode
的对象来查找。rm
有了这个,您可以从列表中排除功能。
rm(list=setdiff(ls(),ls.str(mode="function")))
ls()
[1] "myFunction1" "myFunction2" "myFunction3"
但是,您最好将函数形式化在一个包中,这样您就不必担心使用rm
.
推荐阅读
- python - 为什么 self.search() 在被 singleNonDuplicate() 函数调用时返回 None?
- sqlite - EFCore SQLite 数据库用自己的表名代替我的表名
- java - 从前端应用程序查询 rest-backend 应用程序时避免基本身份验证弹出窗口
- excel - Excel If函数用于多个If
- javascript - 地理位置不适用于 iPhone 上的 PWA
- react-native - 100% 无法下载 Javascript 包 - 世博会
- c# - 当项目已经有值时如何将枚举与按位运算符一起使用
- python - 带有边界条件的numpy cumsum求和
- string - 如何向用户输入字符串列表
- python - 在 mac (macOS Catalina) 上的 python 中使用 GPU 进行 PIL