问题标签 [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.
r - 尝试使用 R 上的报告包生成注释时出错
我正在尝试为报告包https://github.com/trinker/reports/生成注释,并按照 youtube 视频http://goo.gl/x9ulf0中的步骤进行操作。我确实运行了 Tyler 那里的块http://goo.gl/XHouuc但是当我尝试生成笔记时,我不断收到以下错误消息:
然后我尝试将我的工作目录设置到不同的位置,甚至将 ARTICLES 目录移动到我的主目录 ~ 目录,但无论我将 wd 放在哪里,我都会收到完全相同的消息。我阅读了 notes 函数的源代码,但无法弄清楚问题可能出在哪里。notes2 函数也给了我同样的错误
这是我的会话信息:
关于问题可能是什么的任何想法?
r - 如何在 R 中为 3d 数组制作乳胶表
我在 R 中有一个 3d 数组“arr”:
我想为它创建一个 Latex 表,如下所示:
如何使用 R 将上面的表格变成乳胶?我知道 R 包“xtable”可以做我需要的类似事情。但是,我不知道它是否可以为我制作上面的确切表格。
PS:我还想知道除了上面介绍的方法之外,是否还有其他方法可以在表格中呈现 3d 数组。
r - 可重复研究:通过使用 GNU make 调用 statTransfer 将 sas7bdat 数据文件转换为 csv 文件
问题:
我对 GNU Make 很陌生。有没有更好的方法以编程方式将统计数据集从 sas7bdat 转换为 csv 文件,并使用 GNU Make 使它们彼此同步以促进可重复的研究?你会从编码的角度以不同的方式解决这个问题,还是有更好的方法来促进可重复的研究?statTransferOptions.txt
我可以在使用静态模式规则时添加额外的先决条件(即)吗?
解决方案需要:
- 查找所有子目录中的所有 sas7bdat 文件
- 读取 statTransfer 选项
- 使用带有选项的 statTransfer 命令行工具将 sas7bdat 文件转换为 csv 文件
- 鉴于 statTransfer 的当前限制,我认为这将需要两个步骤:
- 为每个 SAS 数据文件 ( .sas7bdat)构建 statTransfer 命令文件 ( .stcmd)
- 通过使用 stcmd 文件中的选项执行 statTransfer (st) 为每个 stcmd 文件构建 csv 文件
- 目标 stcmd 和 csv 文件应与必备的 sas7bdat 文件位于同一子目录中
- 如果存在新的 sas7bdat 文件或基本选项文件发生更改,则查找过期的 stcmd 和 csv 文件并更新它们
语境:
我继承了一份每年发布的大型统计报告。在前几年,分析是在 SAS 中完成的。我们现在正在使用 R。SAS Enterprise Guide 生成的一些 sas7bdat 文件无法使用sas7bdat 包正确导入。StatTransfer 是一款商业产品,具有命令行界面,并且可以将 sas7bdat 文件正确转换为 csv 文件;但是,有一些选项可以改进转换(例如,日期格式的写入)。sas7bdat 文件位于与数据集类型和年份相对应的多个子目录中。
这种方法进一步受到以下因素的推动:
克里斯托弗·甘德鲁德 (2013-06-21)。使用 R 和 RStudio 进行可重复研究(Chapman & Hall/CRC The R Series)(第 104-105 页)。查普曼和霍尔/CRC。Kindle版。
故障排除:
- 这几乎就是我想要的:GNU make 中的递归通配符?
建议的 MAKEFILE?
从 SO 输入后修改的 MAKEFILE:
但是,正确的选择可能是调试 CRAN sas7bdat 包,以便整个工具链可用,而不是调用专有的 statTransfer。
r - 在回归输出中标记变量(可重复研究)
我使用 glm() 函数获得了格式良好的回归结果,然后构建了一个表 (myTable)。
我的问题是:如何自动重新标记第一列中出现的变量名称?到目前为止,我一直在使用 rownames() 函数:
但是,这并不是很灵活。假设我更新了回归模型,我将不得不手动更改 rownames() 函数的参数。我更喜欢搜索和替换解决方案,例如“将 'var1' 替换为 'My Var 1”'。
我检查了 myTable 的结构,并在搜索网络时发现了 gsub() 函数。
我试过 gsub("var1", "My Var 1", myTable) 但这把桌子弄乱了。
有任何想法吗?
r - R:LaTex 的 t.test 输出
我想知道是否有任何功能可以将输出重定向t.test
到LaTeX
。像这样的东西
security - struts 1.1 中的类加载器漏洞重现过程
在 Struts1 中,我听说有一个由CVE-2014-0114引起的类加载器漏洞问题。但我无法在我的项目中重现这一点。谁能帮助我如何重现此问题。我用谷歌搜索但没有得到任何复制程序。
我正在为我的网络项目使用struts-1.1
, Jboss -4.2.3.GA
, Apache 2.2.0
, MySql 5.0.37
, JKMod
, JDK 1.6.0_12
, 。Ant 1.7.0
r - 动态希腊字母作为 RMarkdown 表中的变量名称
如何让 xtable (尽管我也遇到 pander.table 的这个问题)将希腊字母分配给打印功能中的数据框的列,而无需渲染表格,然后手动输入 Latex 的希腊字母?
这是可重现示例的数据:
我通常有一些看起来像这样的数据框。
以下是我在使用 xtable 制作数据框表时经常遇到的一些具体问题:
- 我想做的是将 chiSq 更改为卡方的符号。在乳胶中,这
$x^2$
将呈现适当的符号。 - 我还需要 p 是斜体。
- 最后,LOWRMSEA 和 HIGHRMSEA 是上限和下限,我希望它们删除列名并将数据包含在 RMSEA 的列中,就像置信区间一样。
我发现这样做的唯一方法是先用这个命令打印表格
产生这个:
但是,我需要手动编辑表来创建它:
我希望能够在不手动编辑表格的情况下动态地执行此操作,以便我可以将其作为代码块包含在降价文档中。谢谢。
r - 将研究项目过渡到基于 knitr 的设置
最后,考虑到我的情况,我决定让我的论文研究更接近于使其成为尽可能好的可重复研究的目标。由于目前我不使用LaTeX
我的论文报告(尽管我正在考虑这个选项),我相信这knitr
是最好的方法。
该软件项目实施我的论文研究(数据分析)的实证部分,正在编写R
。该项目在目录结构中包含多个文件,这对于科学工作流程来说是相当典型的(顶级子目录:)analysis, cache, data, figures, import, prepare, present, results, sandbox, utils
。
一般来说,我已经阅读了很多关于knitr
用于自动生成报告和可重复研究的信息(包括示例)。但是,我对大量的配置选项感到有些不知所措,更重要的是,仍然对在像我这样的项目中使用的最佳/正确/最佳方法knitr
感到困惑,包含多个文件和目录。特别是,我对在不对模块进行太多修改的情况下转换 现有代码库的框架和步骤的建议感兴趣。R
例如,让我们考虑一下我的模块,与探索性数据分析 (EDA)相关。我当前的 EDA 工作流程包括:
初步数据,从原始原始数据转换而来(位于“data/transform”子目录中);
模块“eda.R”,位于“分析”目录中;
目录“results/eda”,我当前的代码在其中生成单变量和多变量 EDA 的图形(SVG 文件),以及具有相同图形信息的单个文档报告(PDF 文件)(生成的描述性统计数据正在生成为控制台输出,运行“eda.R”脚本时)。
为了过渡到knitr
基于 - 的项目,我创建了文件“eda-report.Rmd” ,其中包含R Markdown
用于设置本地knitr
选项的语句,包括read_chunk("eda.R")
. 我的理解是,现在我需要根据我的 EDA 工作流程将R
“eda.R”中现有的代码块定义为knitr
块,然后调用这些命名块。
问题:
这是正确的方法吗?knitr
在设置项目路径、使用source()
、分组一些地块gridExtra
、防止潜在问题方面使用的最佳实践是什么?在我看来,除了“eda-report.Rmd”之外,我还需要创建另一个 R 模块,它将.Rmd
通过knitr
. 如果是,我应该使用哪个调用:rmarkdown::render()
或者knitr::knit()
(当我RStudio
用于开发时,我希望我的代码独立于开发环境)?
更新 1(附加问题):
为什么通过“Knit HTML”按钮处理文件会产生.Rmd
文档,而通过命令处理会产生文件,但不是,尽管存在指令?RStudio
HTML
Makefile
Rscript -e 'library("knitr"); knit("eda-report.Rmd")'
.md
HTML
output: html_document
谢谢您阅读此篇!您的建议将不胜感激!
r - 在 Ubuntu 14.04LTS 上安装 Pandoc 以与 R Markdown 一起使用时出现问题
这个问题是我尝试通过和R 包从文档创建可重现报告方面获得一些经验的必然结果。虽然看起来转换是在 RStudio(按钮)内自动进行的,但我尝试在 RStudio()之外执行相同操作却失败了,因为根据消息,我的系统上没有。这很可能是错误的,因为 RStudio 以某种方式设法执行了转换。因此,很可能是访问和/或路径问题。R Markdown
knitr
rmarkdown
.Rmd => HTML
Knit HTML
Rscript -e 'library(rmarkdown); render("knitr-example-slides-1.Rmd")'
pandoc
在不知道 RStudio 维护的位置pandoc
和访问权限的详细信息的情况下,我决定自己安装 pandoc
。不幸的是sudo apt-get install pandoc
,由于pandoc
Ubuntutrusty
存储库 (14.04LTS) 中的当前版本是 1.12.2.1,因此并没有太大帮助。根据rmarkdown
's message,需要 1.12.3 或更高版本。“没什么大不了的”,我想,并按照说明安装pandoc
,以防存储库中的版本太旧(http://johnmacfarlane.net/pandoc/installing.html)。这需要安装Haskell 平台,这个平台很大,输出也很冗长。一段时间后,我终于收到了以下失败消息:
首先,我不确定如何解决它。其次,我非常怀疑应该有比这更简单的方法来享受生成可重复的报告。您的建议将不胜感激!rmarkdown
pandoc
更新(见评论):
r - 获取一个命令来重新创建一个比使用 dput() 更简单的对象
的输出dput
通常比用户为创建相同对象而键入的内容要复杂得多。我知道这可能是保证 100% 可重复性所必需的(包括例如当不同的用户使用不同的默认设置时)。但是,它并没有使示例尽可能具有可读性,而且我经常花一些时间来简化输出。
例如,考虑:
难道没有替代方案dput
可以简单地返回data.frame(a=1:10)
吗?