调试R代码时为什么可以';我在环境窗格中看不到局部变量吗?

调试R代码时为什么可以';我在环境窗格中看不到局部变量吗?,r,debugging,environment-variables,rstudio,R,Debugging,Environment Variables,Rstudio,我创建了一个由我的R代码调用的函数foo。我的主程序和foo在不同的文件中 我在foo中输入了browser()语句。当我运行程序时,代码在browser()调用处停止(实际上是在它上面的几行) 我一直按n,光标向下移动。创建了一些变量,其他变量(如foo的参数)已经存在。我可以通过在控制台中键入ls()来查看它们 在环境窗格中有一个菜单,我可以在其中选择环境。当我在其中调试时,我的函数foo的名称是可见的。它是菜单中最上面的项目。如果我点击菜单,我还可以看到全局环境和一些包的名称 但是,当我在

我创建了一个由我的R代码调用的函数foo。我的主程序和foo在不同的文件中

我在foo中输入了browser()语句。当我运行程序时,代码在browser()调用处停止(实际上是在它上面的几行)

我一直按n,光标向下移动。创建了一些变量,其他变量(如foo的参数)已经存在。我可以通过在控制台中键入ls()来查看它们

在环境窗格中有一个菜单,我可以在其中选择环境。当我在其中调试时,我的函数foo的名称是可见的。它是菜单中最上面的项目。如果我点击菜单,我还可以看到全局环境和一些包的名称

但是,当我在菜单中选择这些环境时,我看不到这些环境中变量的名称。“环境”窗口保持空白

如果我没有调试,当我从菜单中选择相应的项目时,我可以在环境窗格中看到全局环境变量和包变量

这就是RStudio环境窗格的工作方式吗?也就是说,调试时它保持空白

我用最少的代码准备了一个示例。这是调用函数的文件中的代码:

foo <- function(x, y) {
  z <- 1
  w <- 2
  browser()
  x + y + z + w
}

foo我从RStudio支持部门得到了这一点,它起到了作用:


“转到工具->全局选项->高级->调试,取消选中“仅当我的代码包含错误时才使用调试错误处理程序”,然后重新启动。”

我从RStudio支持部门获得了此功能,它起到了作用:


“转到工具->全局选项->高级->调试,取消选中“仅当我的代码包含错误时才使用调试错误处理程序”,然后重新启动。”

环境面板似乎正在为我更新。您正在运行哪个版本的RStudio和R?它可能有助于包括一个实际的例子,我们可以运行,只是为了确保我们正在做同样的事情,可以谈论具体的变量,而不是一般情况。R版本4.0.4(2021-02-15),RStudio版本1.4.1106我添加了一个例子,希望有帮助。环境面板似乎正在为我更新。您正在运行哪个版本的RStudio和R?它可能有助于包括一个实际的例子,我们可以运行,只是为了确保我们正在做同样的事情,可以谈论特定的变量,而不是一般情况。R版本4.0.4(2021-02-15),RStudio版本1.4.1106我添加了一个例子,希望能有所帮助。
source("C://Dropbox/Code/R/StackOverflow1.R")

x <- 100
y <- 10

foo(x, y)