运行r事后调试时,source无法识别全局变量

问题描述

我有两个脚本:

run_source.R

my_var <- "test"
source("source.R")

source.R

print(my_var)

我在unix终端上运行:

 Rscript run_source.R 

,系统将打印出预期的结果:

'test'

如果我修改run_source.R进行调试:

my_var <- "test"
dump.frames(to.file=TRUE,include.GlobalEnv = TRUE)
source("source.R")

再次运行: Rscript run_source.R

我仍然得到预期的"test",但是当我打开一个交互式R会话并返回到调试器时:

load("last.dump.rda"); debugger(last.dump)

并选择1: .GlobalEnv,当我使用my_var时,我可以看到ls()在全局环境中,但运行后: source('source.R")在调试器中,出现错误: Error in print(my_var) : object 'my_var' not found

如何获取source('source.R")以便在调试器中识别全局变量my_var?谢谢您的时间。

解决方法

在这里,我想我可能已经知道了:

在调试器中运行source('source.R",local=TRUE)似乎可以正常工作:

来自:https://www.rdocumentation.org/packages/base/versions/3.6.2/topics/source

local:TRUE,FALSE或环境,确定解析的位置 计算表达式。 FALSE(默认)对应于 用户的工作空间(全局环境),对环境为TRUE

但是,我确实想知道此默认设置是否更改,因为我不记得以前必须这样做。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...