问题标签 [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.
python - 在 Python / Spyder 中设置工作目录,使其可重现
来自 R,setwd
用于更改目录对可重复性是一个很大的禁忌,因为其他人的目录结构与我的不同。因此,建议使用脚本位置的相对路径。
IDE 稍微复杂化了这一点,因为它们设置了自己的工作目录。在 Rstudio 中,我可以通过 Rstudio 的项目轻松解决这个问题,将项目的目录设置为我的脚本文件夹。
使用 Python 和 Spyder,似乎没有任何解决方案。Spyder 没有像 Rstudio 的项目那样的功能。在进行交互式分析时,将目录设置为脚本的位置不起作用(因为__file__
不可用)。
怎么做才能使 Python / Spyder 中的工作目录可重现?
linux - Nix/OS 架构概述?
虽然 Nix/OS wiki 和手册提供了很多优秀的信息,但我仍然无法获得架构概述。为问题的数量和幼稚道歉;随意回答一个子集:
1. 什么是 Nix 包?
根据我对手册的阅读,Nix 包是:
一世。一个 Nix 表达式,用于获取构建所需的源和依赖项。
ii. 一个builder
脚本。
iii. 上的列表all-packages.nix
。
源代码和二进制文件以及生成的派生文件放在 中nix/store
,通道自动更新,通过使用共享的二进制缓存有效地保持更新。
一个。这是正确和完整的吗?
湾。.nix 表达式存储在哪里?
C。nix/store
如果它们具有相同的体系结构,我可以简单地在不同机器之间复制一个包文件夹吗?
2. 什么构成了 Nix 环境?
一个。环境在哪里以及如何定义?
湾。用户资料呢?
C。该命令如何nix-shell
工作?跟nix-env
命令有关系吗?
3. NixOSconfiguration.nix
和 Nix 环境之间的关系是什么?
从手册和 wiki 我收集到 NixOS 是一个 Nix 包,并且 Nix 创建了一个基于configuration.nix
.
一个。这是真的吗,如果是这样,除此之外做什么nixos-rebuild
和做什么?nixos-install
湾。是否可以逆转这个过程,即从环境中生成简洁的包或配置文件?
C。我可以用 NixOS 做什么而我不能用 Nix 做?
4. 使用 Nix 创建可移植且可重现的环境以与同事共享时,有哪些最佳实践?
一个。共享桌面、服务器和开发环境的各种方法是什么?
湾。这些方法的用例是什么?
C。相对于可移植性和可访问性,它们的优缺点是什么?
5. 悬而未决的问题:关于 Nix/OS 架构还有哪些重要的注意事项?
r - 通过匹配和替换匿名化段落变量中的名称
我正在分析一所学校的学生成绩单数据库。我的数据集包含大约 3000 条记录,其结构类似于下面的示例。每一次观察都是一位老师对一位学生的评价。每个观察都包含一个三句话的叙述性评论。
为了分享我的分析结果,我想从评论中删除提及学生姓名的内容,并将其替换为其他姓名。在一个理想的世界中,为了可重复性,我还想分享一个匿名版本的数据库。
学生姓名的不一致使用(名字与昵称与全名)以及学生姓名的非结构化使用对于像我这样的业余爱好者来说非常棘手。我解决这个问题的尝试是将评论作为语料库中的文档处理,并使用编写一个使用tm::removeWords
但对我不起作用的函数。提前致谢!
示例数据(此处表的输入)
所需数据
注意
四个月前,我问了这个问题的一个版本,没有得到答复。我认为这将有助于展示我的解决方案,但也许该tm
软件包并未广泛使用。所以这里是另一个镜头。
r - 分段回归:分段 R 包中断点检测的再现性问题
我试图在segmented
包的帮助下对我的数据进行 3 件回归,但我有点迷失了......
首先:这是一个可重现的例子:
我的数据有 2 个可见断点:
- 首先我尝试用 K=2 指定已知数量的断点:
- 但是如果我设置2<K<8
(所以一个错误的值......),我能够检测到正确数量的断点:
- 最后一点让我感到困惑:
如果我设置 K=4,display=T 选项会显示带有 3 个断点的结果,但在函数输出中我仍然有两个断点...
****** 2016 年 9 月 19 日的编辑******
我也尝试psi
直接指定,因为我在断点位置上有一些先验(但这不是我的目标),结果仍然很糟糕segmented
......
对于一些回归,我必须在算法成功之前多次运行该函数以结束一个解决方案。此外,提出的解决方案通常存在重现性问题......
有谁知道稳健估计这些断点的方法?看起来我的数据并不难拟合,不是吗?
r - 将一个长的可重复的 foreach 循环分成几个较小的循环
在 R 中,有没有办法将一个长的并行 for 循环分解为几个较短的循环,并且仍然保持它们的可重复性和相同性?
我尝试使用doRNG
andforeach
包来做到这一点,但是当我紧接着使用几个短循环时,RNG 种子与使用一个长循环时不同,因此结果不同。
====
示例代码
html - 来自 R - cat()、flexdashboard() 或 Markdown 的情况说明书?
我希望创建 Factsheets 来展示大约 20 个项目的标准化信息。我希望每周更新此信息(以观察进度)并成为 HTML 文件。我正在考虑创建这样的东西:http ://htaindex.cnt.org/fact-sheets/?focus=cbsa&gid=741
我可以使用三个选项:
- frenkenstein 方法:我可以为虚拟资料表编写所有 html,然后在 R 中将我的数据混入其中并使用
cat()
. 如果我真的想变得花哨,我什至可以定义自定义函数,将数据与 html 优雅地混合在一起,这样实施者就不会在 html 和 css 的墙壁上心脏病发作。 - 有限的方法:我可以使用 flexdashboards,它允许将资产放置在行或列方向,但不是真正的组合。这会限制我的创意选择,但更快、更可重复、可调试等
- 正确的方法:我猜人们会说我应该构建一个如此处所述的降价模板,但这似乎非常耗时,而且看起来我必须非常熟悉 pandoc,我并不期待.
我的问题(希望不要太宽泛)然后是:为什么我不应该只使用弗兰肯斯坦的方法?
python - Jupyter笔记本中的功能单元测试?
我有一个打算重复运行的 Jupyter 笔记本。它里面有函数,代码的结构是这样的:
我想为construct_url
和编写测试scrape_url
。这样做最明智的方法是什么?
我考虑过的一些方法:
- 将函数移出实用程序文件,并在一些标准 Python 测试库中为该实用程序文件编写测试。可能是最好的选择,尽管这意味着并非所有代码都在笔记本中可见。
- 使用测试数据在笔记本本身内写入断言(向笔记本添加噪音)。
- 使用专门的 Jupyter 测试来测试单元格的内容(不要认为这行得通,因为单元格的内容会发生变化)。
python - Python + numpy:相同的代码,不同的数值结果
我发现了一些我很好奇的非常有趣的行为。最终,出于科学计算的原因,我想要完全可重现的代码。
无论如何,这是一段带输出的代码。如您所见,相同的计算会导致略有不同的结果。
这是输出:
我的两个变量,x
只是P
1d 和 2d numpy 数组。然而不知何故,相同的简单计算给出了不同的结果。此外,在循环的不同迭代中,未能给出相同结果的试验会有所不同。例如,在这种情况下,i = 0
试验没有问题,但计算未能给出相同的结果i = 1
。
有趣的是,如果我不将中间值保存在a1
and中a2
,那么结果是相同的:
带输出:
知道这里发生了什么吗?
r - 在 Rmarkdown 的每个部分中创建引用
我想使用 Rmarkdown,但我读到的是,在使用 pandoc 创建参考书目时,参考文献位于文档末尾:
pandoc/citeproc 问题:多个参考书目、nocite、citeonly
因此,即使我有一个名为 thesis.Rmd 的父文档,我也假设所有引用都会放在该文件的末尾。
我需要每篇论文的章节或章节必须有自己的参考文献,除了在我写的每一章中放置参考书目标题然后单独编织每一章之外,还有其他方法可以解决这个问题吗?