2017-03-15 72 views
4

我一直在玩R Markdown,我真的很喜欢它,因为在每次分析之后,我都需要编写一个详细说明结果的(Word)报告。使用R Markdown时,代码和报告是相同的文档,所以很容易记住,我选择在代码中的某个点执行分析B,因为之前的分析A的结果。在R Markdown中调试代码

但是,我无法在R Studio中设置R Markdown中的断点,这严重限制了执行高效调试的可能性。这意味着最终我只能使用Markdown进行非常简单的分析,其中R代码非常简单,无论是我不需要调试,或者我都可以手动进行调试。这是可以预料的,也就是众所周知,R Markdown只能用于简单的分析?或者有解决方案吗?

+0

我不明白downvote的原因。问题很明显:我无法在R Markdown中设置断点(或者至少我无法)使用R Studio。那么如何在R Markdown中调试复杂的代码呢? – DeltaIV

回答

4

您可以在代码中使用browser()来设置断点。请参阅https://support.rstudio.com/hc/en-us/articles/205612627-Debugging-with-RStudio#debugging-in-r-markdown-documents

我发现将自定义函数写入.R和source()它在Markdown中会更有用。然后,你获得两全其美的好处。

+0

在R Markdown中,我通常有很多块。你是否打算为每个块写一个自定义函数?如果一个函数的结果依赖于另一个块中的函数,那么调试似乎会变得复杂。 – DeltaIV

+1

不,我通常在几个.R文件中编写所有我正在使用的函数(例如,一个用于在许多分析中重复使用的常用自定义函数,另一个用于我为此特定分析编写的自定义函数),将文件第一个块,并在随后的块中使用这些功能。 –

+0

太棒了!谢谢 :) – DeltaIV