Rstudio在运行和源之间的区别

use*_*622 40 rstudio

我正在使用Rstudio而不确定选项"运行"和"源"是如何不同的.

我试过谷歌搜索这些术语,但'源'是一个非常常见的词,并没有得到很好的搜索结果:(

在此输入图像描述

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)

  • 或者,您可以从功能中创建一个包. (3认同)
  • 真的。我经常这样做用于数据分析,其中文件格式和处理因项目而异。我还想演示 OP 如何在实际应用程序中使用“source”。 (2认同)
  • 该代码本质上等同于源代码示例中给出的代码。你可以使用它:`example(source); sourceDir("c:\\temp")` (2认同)

And*_*rau 7

“运行”按钮只是执行选定的一行或多行。“源”按钮将执行整个活动文档。但为什么不尝试一下,看看有什么不同呢?

  • 无论如何,我只是快速回答了当时尚未回答的问题。但现在,大约六年后,它经常看到反对票,我发现在许多精心设计的答案的背景下,它可能会显得有点粗鲁。 (2认同)

Chr*_*kyi 7

有时,由于我不理解的原因,您将获得不同的行为,具体取决于您是选择所有代码行还是按下运行按钮或转到代码菜单并选择"来源".例如,在一个特定情况下,当我选择了所有代码行时,将gplot写入png文件时,但是当我进入代码菜单并选择"source"时,写入失败.但是,如果我选择'Source with Echo',我可以再次打印到png文件.

我只是在报告我在选择和运行所有行和代码以及进入代码菜单和选择"源"之间的差异,至少在尝试将gplot打印到png文件时.


jkd*_*jkd 7

我还刚刚发现,如果您获取文件或使用 ! 将源文件的函数添加到您的环境中,则用于读取源函数的编码也可能不同Ctrl+Enter

\n\n

就我而言,我的函数中有一个带有特殊字符(\xc2\xb5)的正则表达式。当我直接导入函数 ( Ctrl+Enter) 时,一切都会正常工作,而在获取包含此函数的文件时出现错误。

\n\n

source为了解决这个问题,我在函数 ( )中指定了源文件的编码source("utils.R", encoding = "UTF-8")

\n


C8H*_*4O2 6

@AndyClifton答案的重要含义是:

Rstudio断点source(Ctrl-Shift-S)中起作用,但在(Ctrl-Enter)中不起作用run

大概是因为使用run,原因是代码直接传递到控制台中,不支持部分提交。

browser()尽管您仍然可以使用with run

print()debugSource(Ctrl-Shift-S)和中都支持控制台安装run