问题标签 [reproducible-research]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
build-system - 使用构建系统进行可重复的研究?
我正在做一个涉及一系列程序的研究项目,每个程序都会生成一个输出文件,该文件成为下一个程序的输入。我想让重复我用来创建所需输出的一系列命令变得容易。似乎make或任何其他构建系统都非常适合这项任务,但是我看过的所有构建系统(可能除了make本身)似乎都强烈倾向于从源代码构建可执行文件,并且我不知道如何对他们做任何其他事情。除了将源代码编译成可执行文件之外,有没有人有使用构建系统完成任务的经验?我可以轻松地使用构建系统来促进可重复的研究,还是应该寻找不同类型的工具?
r - 使用插入符号的完全可重现的并行模型
当我在插入符号中运行 2 个随机森林时,如果我设置一个随机种子,我会得到完全相同的结果:
但是,如果我注册一个并行后端来加速建模,每次运行模型时都会得到不同的结果:
有没有办法解决这个问题?一个建议是使用doRNG包,但train
使用当前不支持的嵌套循环:
doSNOW
更新:我认为可以使用and来解决这个问题clusterSetupRNG
,但我无法做到。
foreach有什么特别之处,为什么不用我在集群上发起的种子?对象a
和b
是相同的,那么为什么不model1
和model2
?
ipython - 以编程方式将单元格添加到 ipython 笔记本以生成报告
我看过一些 iPython 开发人员关于如何将 ipython 笔记本转换 为博客文章、pdf甚至整本书的演讲(大约 43 分钟)。PDF-to-X 转换器会解释用 markdown 或代码编写的iPython 单元格,并在一个步骤中输出一个新格式化的文档。
我的问题是我想生成一个大型文档,其中许多图形和部分都是以编程方式生成的 - 类似这样。为了使用上述方法在 iPython 中工作,我需要能够编写一个函数来编写其他 iPython-Code-Blocks。这种能力存在吗?
我认为这可能有用,所以我想知道是否:
- 通过 iPython 生成 iPython 单元是可能的
- 如果有理由认为这是一个坏主意,我应该坚持使用模板库(Jinja)等“经典”解决方案。
谢谢,扎克cp
编辑:根据 Thomas 的建议,我在ipython 邮件列表上发布了一些关于这个想法可行性的反馈。简而言之 - 有一些技术上的困难使这个想法对于最初的想法不太理想。对于想要生成 markdown 单元和相应图像/表格的重复报告,通过 ipython 内核/浏览器工作比直接使用 Jinja 等模板系统生成报告要复杂得多。
r - 用于可重复研究的自动化文本
我正在使用 RStudio、R Markdown、Latex 和 Pandoc 来清理数据、构造变量、运行分析并报告结果。我对可重复研究的概念不熟悉,但我被迷住了。很有意义。
动态表格和数字没有问题。然而,动态文本难倒我。我可以插入内联代码来说明所有统计数据中有 95% 是错误的,但我不确定如何以可重现的方式改变我的语言。
例如,如果我有一个对象 x=0.66,我想写“三分之二的牙医使用 Crest”怎么办?我可以查看 x 的当前值 0.66,然后在文本中键入“2 out of 3”,但这是不可重现的。假设我得到新数据并重新运行分析,x 变为 0.52。我的文字会过时。当然,我可以动态报告 52% 的牙医更喜欢 Crest,但是当所有内容都以百分比报告时,报告就会变得陈旧。
我的想法是,当我想改变写作时,我可以创建可以在文本中调用的函数。例如,“out.of”函数可以处理 if else 语句来生成文本:
我还可以创建一个分数函数,它可以对十分之一、五分之二、三分之一做类似的事情......
我相信其他人已经解决了这个问题。有什么线索吗?想法?
r - 带有 knitr 字幕的循环
我想知道是否有一种简单的方法可以在knitr
. 我知道的唯一方法是:(从https://github.com/yihui/knitr-examples/blob/master/075-knit-expand.Rnw简化)。但是将输出收集到src
然后在循环之后打印它是一个拖累,因为我想编写一个函数来从任意数据集产生这样的循环。
所以我希望能够做的是这样的事情:
...如果我在其上运行 brew() 会产生...
...然后我可以 knit2pdf() 的输出。所以如果模板被称为 tmpl.Rnw,我会运行 brew('tmpl.Rnw','doc.Rnw');knit2pdf('doc.Rnw)
r - 在 R 中包含从外部文件运行的源代码
我有一个标准的数据分析程序,需要在各种(约 50 个数据集)上运行。我已经开发了一段时间,现在我想把它变成一个函数,它接受一个数据集并为每个数据集吐出一些合理的表。但是,完成的过程跨越了四个脚本文件,到目前为止,我已经source
从一个到另一个运行它,但似乎不可能使用function
.
我有以下问题:
当您在数据集上运行代码时,它会崩溃。
是否有某种方式(命令)可以在编译时从其他文件中复制粘贴命令(不知道如何以不同的方式调用它,即使它不是真正的编译)函数?我知道我可以自己复制粘贴它,但我不想这样做,因为各种步骤包括神经网络和 ARFIMA 估计,为了代码的可读性,我想将它们保存在单独的文件中。无论如何,复制粘贴后的功能将类似于 200 行代码,这绝对不是用户友好的......
谢谢
emacs - 如何在 org-babel 的评估(导出)源块中导入/扩展 noweb refs?
我正在尝试做这样的事情:
我想要发生的是在评估块以产生导出输出时,将 <<defs>> 扩展为缠结样式。实际发生的是 <<defs>> 被逐字评估并导致语法错误。
当将这样的块与输出文件纠缠在一起时,一切正常,但是当我导出缓冲区时,我不知道如何做同样的事情。
建议?
r - 用于在可重复研究中格式化数值的软件包
是否有一种标准方法可以将数值转换为应用了特定类型格式的字符。
我在想类似的东西:
显然,我自己写它们并不难,但是在准备报告时对这种东西的需求是相当恒定的,而且肯定已经有一些包了?
r - 在 org 模式下链接/导入外部源代码
这篇论文启发我检查了 Emac 的org-mode,目前我尝试评估什么更适合编写我的文档:knitr / Sweave(我主要使用 R 进行编程)或 org-mode。
我真正喜欢 knitr 的地方在于可以将实际源代码外部化(注意:R 脚本中标签/名称的声明似乎已从## ---- label -------
变为## @knitr label
; 参见?read_chunk
)并将它们“链接”到实际的读写编程/可重复研究文档(而不是在该文档中实际编写代码):
“导入”
并通过引用相应的标签来“重用”
问题
这在 org-mode 中是否也有可能,还是我必须将实际代码放入.org
文档中?
我找到了这个,但我没有找到任何链接/导入外部源代码文件的具体概念,并且能够通过将链接代码放在里面来执行它们
背景
我确实看到这种方法可能会在一定程度上对比识字编程的一般范式。但我喜欢以某种“原子”风格工作,因此我感觉更自然的是首先将文件分开,然后动态地将所有内容混合在一起。
makefile - Make 中静态模式规则的语法有多灵活?
我想使用 make 作为可重复研究的工具。这项研究涉及一个很长的管道,我将为许多独立的数据集运行它,需要一个我将在“pseudo-make”中描述的工作流程,如下所示:
如果 make 只是简单地将每个数据集的名称替换为 '%',这正是我想要的。但是,GNU make 手册对静态模式规则的语法有这样的说法:
当 target-pattern 匹配一个目标时,`%' 可以匹配目标名称的任何部分;这部分称为茎。模式的其余部分必须完全匹配。
这就解释了为什么上面的代码不起作用。在 make 中完成此任务的最佳方法是什么,或者 make 根本不是这项工作的正确工具?
在此先感谢,如果问题提出不当,我深表歉意——我是新手,几乎不知道如何表达这个问题。