【问题标题】:How do I create a content index for code in R如何为 R 中的代码创建内容索引
【发布时间】:2020-02-16 19:05:57
【问题描述】:

为了我的工作,我必须编写超过 600 行的脚本。我的脚本对我的同事来说是可读的很重要,但我注意到即使在阅读我自己的代码时,我也需要滚动很多才能找到某个函数。

问题不在于代码丑陋或没有注释 - 每行都有注释解释正在做什么以及为什么。它也是有组织的——它遵循一个非常可预测的结构。我正在努力的是所有垂直滚动。它似乎已经过时了。当我在写一个 word 或 latex 文档时,我可以创建被软件识别为索引点的标题。然后这些索引点会显示在目录中。

我可以在 R 中做类似的事情吗?有没有允许像这样索引点的编程语言?维基百科也这样做,例如链接https://en.wikipedia.org/wiki/Meteorological_history_of_Hurricane_Patricia#Peak_strength 将带您到有关飓风峰值强度的段落。

【问题讨论】:

  • 如果您愿意,可以在 RStudio 中使用 vim 绑定,并且只需 / 即可搜索。如果您愿意,我建议使用 RMarkdown 共享代码或 Jupyter 笔记本。
  • Johannes 的回答是正确的,我认为 - RStudio 的部分是必不可少的 - 但是,并非所有内容都需要在一个脚本中。您可以在其他脚本中使用source() 脚本,从而加载其中定义的函数,和/或在其中运行任意代码。您当前的脚本运行将等到源脚本完全执行。

标签: r metadata metaprogramming


【解决方案1】:

如果你使用 RStudio,你可以这样做。您需要像这样使用 cmets 并显示文档大纲(在 Source 旁边)

#library----

#some code---- 


#example----

【讨论】:

  • 很好的解决方案!我提交
【解决方案2】:

我非常个人化的技巧如下。我在 if(TRUE) 块中组织代码块,以便我可以折叠它们,例如在 RStudio 中。

# Step 1 of the pipeline
if(TRUE){
    message("Step 1 starting")
    Sys.sleep(0.1)
    i<-5
    i<-i+5
}

# Step 2 of the pipeline
if(TRUE){
    message("Step 2 of the pipeline")
    i<-i^2
    message("The results is ",i)
}

这样最终看起来会更整洁:

【讨论】:

  • 你可以不用 if 语句将它们包裹在{ }
  • RStudio 部分允许您在不为所有代码添加额外缩进的情况下进行折叠。
猜你喜欢
  • 2019-07-08
  • 1970-01-01
  • 1970-01-01
  • 2014-05-02
  • 1970-01-01
  • 1970-01-01
  • 2018-07-23
  • 2018-01-02
  • 2022-11-30
相关资源
最近更新 更多