And*_*ton 29
Run并且source有着微妙的不同含义.根据RStudio 文档,
选择中的行和调用Source之间的区别在于,在运行选择时,所有行都直接插入控制台,而对于Source,文件将保存到临时位置,然后从那里获取到控制台(从而减少了混乱)控制台).
需要注意的是,文件中的源代码功能使它们可供脚本使用.这是什么意思?想象一下,您正在尝试对从脚本调用的函数进行故障排除.您需要source包含该函数的文件,以便在脚本中的那一行时使用函数中的可用更改run.
另一个方面是您可以source从脚本中运行.我使用此代码自动获取目录中的所有函数,这使得使用单个函数运行长脚本变得容易run:
# source our functions
code.dir <- "c:\temp"
code.files = dir(code.dir, pattern = "[.r]")
for (file in code.files){
source(file = file.path(code.dir,file))
}
Run Code Online (Sandbox Code Playgroud)
“运行”按钮只是执行选定的一行或多行。“源”按钮将执行整个活动文档。但为什么不尝试一下,看看有什么不同呢?
有时,由于我不理解的原因,您将获得不同的行为,具体取决于您是选择所有代码行还是按下运行按钮或转到代码菜单并选择"来源".例如,在一个特定情况下,当我选择了所有代码行时,将gplot写入png文件时,但是当我进入代码菜单并选择"source"时,写入失败.但是,如果我选择'Source with Echo',我可以再次打印到png文件.
我只是在报告我在选择和运行所有行和代码以及进入代码菜单和选择"源"之间的差异,至少在尝试将gplot打印到png文件时.
我还刚刚发现,如果您获取文件或使用 ! 将源文件的函数添加到您的环境中,则用于读取源函数的编码也可能不同Ctrl+Enter。
就我而言,我的函数中有一个带有特殊字符(\xc2\xb5)的正则表达式。当我直接导入函数 ( Ctrl+Enter) 时,一切都会正常工作,而在获取包含此函数的文件时出现错误。
source为了解决这个问题,我在函数 ( )中指定了源文件的编码source("utils.R", encoding = "UTF-8")。
@AndyClifton答案的重要含义是:
Rstudio断点在source(Ctrl-Shift-S)中起作用,但在(Ctrl-Enter)中不起作用run
大概是因为使用run,原因是代码直接传递到控制台中,不支持部分提交。
browser()尽管您仍然可以使用with run。
print()debugSource(Ctrl-Shift-S)和中都支持控制台安装run。
| 归档时间: |
|
| 查看次数: |
20931 次 |
| 最近记录: |