想在R markdown中运行一个代码,需要插入一个代码块(chunk),实现方式有三种:1)快捷键:Ctrl+Alt+I;2)编辑器工具栏中的“Insert”图标按钮;3)手写```{r} 和 ```
。最为推荐快捷键。
在R markdown中运行代码的快捷键如下:
快捷键 | 功能 | 说明 |
---|---|---|
Ctrl+Enter | 运行当前行 | 通用的,只要是当前行都可以运行。优缺点:在R script中更适用,因为R markdown文件中有文本行等非代码行,直接用可能会导致很多错误;如果code chunk中有多行代码,也只能一行一行运行。 |
Ctrl+Shift+Enter | 运行当前代码块 | 一个代码块应该是相对独立的并集中在一个单一的任务上,所以一次运行整个代码块会更有效率。 |
Ctrl+Alt+N | 运行下一个代码块 | 会忽略R markdown文档中的非代码块的内容,效率更高 |
Ctrl+Alt+Shift+P | 运行当前代码块之前的所有代码块 | 改变了输入之后想一步到位,请用这个 |
Ctrl+Alt+R | 运行所有代码块 | 终极一步到位 |
代码块的名字
在chunk header中给chunk命名,书写格式为```{r name, 可跟逗号分割的其他选项信息}
。有名字的好处:1)可以使用脚本编辑器左下方的下拉代码导航器快速定位特定的代码块;2)代码块可输出有名字的图片便于他处使用;3)可以设置缓存块的网络,避免每次高代价的执行。
特殊名字:setup,作用:当处于notebook模式时,命名为setup的代码块将在其他代码块之前自动执行一次。
代码块的选项
Knitr提供近60个options用于定制代码块。最重要的一类选项是用来控制代码是否执行以及在最终的报告中展示哪些结果。
选项 | 描述 | 对结果的影响 |
---|---|---|
eval=FALSE | 不运行代码。适用场合:仅展示示例代码或者禁用一大段代码(不许需要通过注释每一行来实现啦) | 最终文档中只展示代码,不展示结果 |
include=FALSE | 运行代码,但代码和运行结果均不在最终文档中展示 | 最终文档中不展示任何信息,纯后台 |
echo=FALSE | 运行代码,但最终文档仅展示运行结果 | 最终文档中不展示代码,仅展示结果 |
message=FALSE,warning=FALSE | 最终文档中不展示messages和warnings信息 | - |
results='hide' | 隐藏打印输出 | - |
fig.show='hide' | 隐藏图片 | - |
error=TRUE | 即使代码执行错误,整个markdown也会继续被knite,适用于调试 | - |
error=FALSE | 如果代码执行错误,knite会失败 | - |
表格
直接print数据框,Knite之后不是表格,可以用knitr::kable
函数生成markdown格式的table,
```{r}
print(head(mtcars[1:5,]))
\```
```{r}
knitr::kable(
mtcars[1:5, ],
caption = "A knitr kable."
)
\```
另外,xtable, stargazer, pander, tables,和 ascii 包都提供了一系列像knitr::kable
一样从R代码中生成格式化表格的工具。
网友评论