r - 如何在函数内使用ls()搜索环境?

标签 r environment

我想找到一组函数并保存它们,因为我想将它们发送到Rdata文件中的远程服务器上,并且我不想在服务器上安装新的软件包。

尽管使用以下方法时遇到错误,但欢迎使用更简单/更好的方法。

MWE:

这是两个虚拟函数:

abcd.fun.1    <- function() return(1)
abcd.fun.2    <- function() return(2)

我可以识别出虚拟功能:
ls()[grep('abcd', ls())]

但是当我将其包装在一个函数中时:
 find.test <- function(x) {
     return(ls()[grep(x, ls())])
 }
 find.test('abcd')

该函数返回character(0)
最终我想
 save(find.test('abcd'), file = test.Rdata)

最佳答案

  • 为什么不对pattern=使用ls参数?
  • 在函数内调用ls会列出存在于对象内部的对象。
    函数范围,而不是全局环境(这在?ls中进行了说明)。

  • 如果要通过函数列出全局环境中的对象,请指定envir=.GlobalEnv
    x <- 1:10
    f <- function() ls()
    g <- function() ls(envir=.GlobalEnv)
    h <- function() ls(envir=.GlobalEnv, pattern="[fg]")
    f()
    # character(0)
    g()
    # [1] "f" "g" "h" "x"
    h()
    # [1] "f" "g"
    

    关于r - 如何在函数内使用ls()搜索环境?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8142941/

    相关文章:

    r - 使用 R 查找 Youtube 视频时长

    r - 错误: default method not implemented for type 'list' in corrplot in R version 4. 1.2

    r - 添加具有不同数据的图层时,ggplot对象未找到错误

    r - 使用包中的评估调用包装 data.table

    r - 在哪里可以找到 R session 警告日志?

    r - 如何将一个带有下标的特定图例标签稍微向下移动?

    r - 如何在同一网格上自动绘制不同的曲线?

    php - mysqli_fetch_assoc()需要参数/调用成员函数bind_param()错误。如何获取并修复实际的mysql错误?

    php - mysqli_fetch_assoc()需要参数/调用成员函数bind_param()错误。如何获取并修复实际的mysql错误?

    r - 赋值以替换非本地列表中的值