我正在使用nbconvert命令行执行iPython笔记本(如本答案所示):
ipython nbconvert --to=html --ExecutePreprocessor.enabled=True RunMe.ipynb
是否可以传递命令行参数以便从笔记本中访问(如sys.argv)?
这将让我在不同的上下文中重用相同的笔记本.
是否可以采用rmarkdown文件,以编程方式操作块选项,然后knit基于修改后的文档?
我有一些我想要的rmarkdown文件purl,包括所有代码(甚至eval=FALSE包括).
在这一点上,我最好的猜测是我可以(1)使用sed切换eval=FALSE到eval=TRUE,然后(2)purl.但我喜欢,如果有更好的东西,例如可能像:
parsed_rmd <- knitr::parse_rmd('my_rmarkdown.rmd')
for (chunk in parsed_rmd) {
chunk$eval <- TRUE
}
knitr::purl(parsed_rmd, output = 'my_rmarkdown_as_r.R'
Run Code Online (Sandbox Code Playgroud) 看起来ggplot2::geom_polygon行为与Windows OSX不同.这是一个例子:
library("ggplot2")
df <- data.frame(x = c(1, 4, 4, 1, 1, 2, 3, 3, 2, 2, 1),
y = c(2,2, 5, 5, 2, 3, 3, 4, 4, 3, 2),
hole = c(FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, TRUE, TRUE, TRUE, FALSE))
ggplot(data=df) + geom_polygon(mapping=aes(x, y), fill="green")
Run Code Online (Sandbox Code Playgroud)
这是我在Windows上为我生成的内容:

......在我的Mac上:

在上面的例子中,应该预期的行为可能有点令人困惑!沿负方向追踪洞是更明智的,并获得一致的行为(两者都像上面的Windows输出):
index <- 1:nrow(df)
index[df$hole] <- rev(index[df$hole])
dfReversed <- df[index,]
ggplot(data=dfReversed) + geom_polygon(mapping=aes(x, y), fill="green")
Run Code Online (Sandbox Code Playgroud)
我正在使用相同版本的R和Ggplot2:
Windows 8 OS X 10.9.1 R v3.0.2 Ggplot2 v0.9.3.1.
是什么导致这种差异?或者更一般地说,如何geom_polyon在这些令人困惑的例子中决定要画什么?
我正在研究一个R包,并且(在包的代码中)需要确定调用某个函数时的版本号.
packageVersion("mypackage")工作,但我宁愿不硬编码包的名称.我怎么能问"我所在的包装名称是什么"?(或者直接获取我所在的软件包的版本号.)