首页 > 解决方案 > 在调试 R 代码时,为什么我在环境窗格中看不到局部变量?

问题描述

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

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

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

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

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

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

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

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

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

这是主文件中的代码:

source("C://Dropbox/Code/R/StackOverflow1.R")

x <- 100
y <- 10

foo(x, y)

标签: rdebuggingenvironment-variablesrstudio

解决方案


我从 RStudio 支持那里得到了这个,它起作用了:

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


推荐阅读