我知道我可以使用cache=TRUE
选项来使用R Markdown来缓存R代码块knitr
.例如,它可能看起来像这样:
```{r longanalysis, cache=TRUE}
for (i in 1:5000) {
lm((i+1)~i)
}
```
Run Code Online (Sandbox Code Playgroud)
我意识到,如果我想禁用该分析的缓存,我可以cache=FALSE
在代码块中更改选项.但是,如果我有许多启用了缓存的R代码块,则需要仔细查找和替换操作.
cache=FALSE
整个R Markdown文档?我见过第一行的例子.所以我想这是一种设置全局设置的方法,但我认为本地设置会覆盖全局设置.
`r opts_chunk$set(fig.width=5, fig.height=5, fig.path='')`
Run Code Online (Sandbox Code Playgroud) 如何将控制台输入和控制台输出都接收到文本文件?请使用以下代码:
sink("temp.txt")
1:10
sink()
Run Code Online (Sandbox Code Playgroud)
它将编写一个如下所示的文本文件:
[1] 1 2 3 4 5 6 7 8 9 10
Run Code Online (Sandbox Code Playgroud)
但是如何创建如下所示的文本文件:
> 1:10
[1] 1 2 3 4 5 6 7 8 9 10
Run Code Online (Sandbox Code Playgroud)
我看了看?下沉并搜索了R-help.我还读过:在R中维护输入/输出日志
如果它有所作为,我正在使用StatET和Eclipse.
任务是创建一个文件(word,rtf,pdf,html或其他),它将R的输出(例如:不是创建输出的代码)捕获到该格式(包括文本和图像).
这样做的方式应该是尽可能少地改变原始的R脚本.
如果我只关心文本或图像,那么我会使用?sink,或?pdf.但我不知道如何以简单的方式将两者合二为一.
我知道有一种方法可以使用r2wd导出R输出,但是根据我的口味它在原始代码中涉及太多的介绍(我认为对于sweave解决方案也是如此,尽管我没有经验告诉它)
以下是未来示例的示例代码:
START.text.and.image.recording("output.file") # this is the function I am looking for
x <- rnorm(100)
y <- jitter(x)
print(summary(x))
print(head(data.frame(x,y)))
cor(x,y)
plot(x,y)
print(summary(lm(y~x)))
STOP.text.and.image.recording("output.file") # this is the function I am looking for
Run Code Online (Sandbox Code Playgroud)
更新:我被问到方式不是Sweave,或ReproducibleResearch任务视图中的其他选项.
原因是:
我知道像sweave或brew这样的东西更具可扩展性,但我希望看看是否有更简单的解决方案适用于较小的项目/脚本.
动机:我经常想使用R Markdown将快速分析的结果粘贴到StackExchange站点.这包括对堆栈溢出R-标签,交叉验证,或者像网站甚至一个特定领域的分析,认知科学堆栈交易所(例如,这种快速分析OECD寿命指数数据).
默认转换的问题:
在默认的降价输出knitr
不适合列入StackExchange.我能看到的主要问题是
即,块看起来像这样:
```r
some code
```
Run Code Online (Sandbox Code Playgroud)
和输出看起来像这样
```
## some output
## ...
```
Run Code Online (Sandbox Code Playgroud)
可能还有其他特定问题需要考虑,例如
什么是将R Markdown转换为Markdown(或HTML)的良好命令,适合简单地包含在Stack Exchange站点中?
我认为一个理想的命令是一个单行程序,它接受一个R Markdown文件并生成一个文件,其中整个内容可以直接粘贴到Stack Exchange中,以产生格式正确的问题或答案.
我将这个简单的rmd文件与一些代码块,一个图形和一个等式作为测试示例共享.
最初的想法:在imgur上托管图像可能会解决图像问题.这可以通过在R Markdown文件中包含以下内容来完成,但如果将此指令合并到某个单线程命令中则可能更简单.
``` {r }
opts_knit$set(upload.fun = imgur_upload)
````
Run Code Online (Sandbox Code Playgroud)
可能值得考虑HTML或Markdown是否是粘贴到StackExchange的更好格式.该markdown
软件包提供了很大的灵活性.
没有任何特定的规律性,我的vim显示标签位置的下划线(见下文).
有时它也会出现在文本中:我输入并加下划线.
可能是什么原因?
我有一个Macintosh,我试图自动加载包,自制函数,并在每次启动R时使用修改后的设置.我相信这可以通过一个名为Rprofile.site的文件来完成,并通过创建函数.First和.Last在那个文件中.
一个问题是,我不知道我的R_HOME目录是什么,它用于什么,或者它是否存在.我找到了两个功能,我认为它们都给了我它的位置,但我得到了不同的结果.
这是第一个
> Sys.getenv("R_home")
R_home
""
Run Code Online (Sandbox Code Playgroud)
第二个
> R.home()
[1] "/Library/Frameworks/R.framework/Resources"
Run Code Online (Sandbox Code Playgroud)
据我所知,我的机器上甚至不存在第二个目录.我目前正在从我的应用程序目录运行R.
我喜欢使用vi样式的键绑定编辑和操作bash命令行,并具有以下设置:
set -o vi
Run Code Online (Sandbox Code Playgroud)
但是,当我在命令行上启动R时,这些键绑定会消失.我知道当你通过Conque Shell运行R时,Vim-R插件允许Vim键绑定,但我对这种体验并不完全满意,而且,无论如何,有时我只想在标准命令行上运行R.
我喜欢将存储库上传到包含多个R Markdown和Markdown文件的github.
这是github上这种markdown文件的一个例子.这是一个屏幕抓取.
https://github.com/... /blob/.../myfigure.png
Run Code Online (Sandbox Code Playgroud)
而我认为它需要参考
https://github.com/... /raw/.../myfigure.png
Run Code Online (Sandbox Code Playgroud)
imgur:我可以通过添加以下代码来使用外部图像托管(例如,参见此示例):
```{r setup}
opts_knit$set(upload.fun = imgur_upload) # upload all images to imgur.com
````
Run Code Online (Sandbox Code Playgroud)
但是,出于各种原因,我不想这样做(我在防火墙后面上传时遇到问题;它很慢;它会产生不必要的依赖)
Rpubs:还有RPubs非常酷.但是,在发布时,它似乎更适合单个降价文档而不是多个R降价文档.它并没有提供源R Markdown和Markdown文档之间的这种紧密联系.
我有一些带有MathJax方程的HTML文档,我想将它们转换为Latex,然后转换为pdf.我想用Pandoc.
但是,Pandoc取而代之$
,\$
它将替换\
为公式\textbackslash{}
.
是否有可能让Pandoc将MathJax公式从HTML传递到Latex?