草庐IT

R Markdown 语法新手指南

Sreenath 2023-03-28 原文

你可能已经了解过轻量级标记语言 Markdown。如果你是第一次接触这个概念,请参考我们的 ​​Markdown 指南​​。概括来讲,它是一种用于创建纯文本文档的简单又高效的语言。

然而,Markdown 在制作详细的报告或技术文件方面可能还不够完善。

受益于 ​​knitr​​ 和 Pandoc 等软件包,交互式文件格式 R Markdown 早在 2014 年就出现了。它将纯文本与内嵌的 R 代码相结合,可以制作动态文件。

你可以使用 ​​各种 IDE​​ 和扩展来创建 R Markdown 文档,官方 IDE 为 RStudio。因此,在这篇文章中,我们将重点介绍使用 RStudio 学习 R Markdown 语法

?(假如你没有了解过,)R 编程语言 是一种用于统计计算、图形表示和报告的语言。

配置 RStudio

通过合适的配置,你可以很轻松地用 RStudio 来编写 R Markdown。只需要安装一个软件包,就已经完成了大部分的工作!

安装 RStudio 后,在 “工具Tools” 菜单中选择 “安装软件包Install Packages” 选项。

在 RStudio 的工具菜单下选择安装软件包选项

在弹出的对话框中,搜索 “rmarkdown” 并安装。

通过搜索并在新的软件包安装对话框中按下安装按钮来安装 Rmarkdown 软件包

? 如果你想使用类似 Python 的代码块,你需要安装额外的包。当你想在你的文档中包含这些包时,RStudio 会提示你安装所需的包。

安装完成后,你可以通过选择 “文件File > 新建文件New File

从文件菜单中创建一个新的 RMarkdown 文档

之后会提示你添加一些关于文件的信息(文件的元数据),把这些填上就可以了。

用 R Markdown 语法写出标题和其他细节

或者你可以创建一个空的文件从零开始。

RMarkdown 语法

由于它是 “加强版的 Markdown”,因此大多数语法与 Markdown 是一样的。

它还有一些 Markdown 支持不完善的东西,比如表格、数学方程式、代码块等等

下面是我们要介绍的内容的概括:

RMarkdown 块名

语法

标题

​# 一级标题​​​​## 二级标题​

​### 三级标题​

​一级标题​

​=======​

​二级标题​

​-------​

着重

​*斜体*​​​​_斜体_​

​**加粗**​

​__加粗__​

列表

无序列表:

​* 列表项​​​​* 列表项​

​+ 子项​

​+ 子项​

有序列表:

​1. 列表项​

​2. 列表项​

​+ 子项​

​+ 子项​

代码块

普通代码块:

​```​​​​这里写代码​

​```​

R 代码块:

​```{r}​

​R 代码​

​```​

你也可以用其他的语言

​行内 `代码`​

链接

普通链接:粘贴 URL

带标题的链接:​​[显示的文本](URL_地址)​​跳转到锚点: ​​[显示的文本](#锚点)​

表格

​| 列名 | 列名 | 列名 |​​​​| ------ | ------ | ------ |​

​| 项内容 | 项内容 | 项内容 |​

​| 项内容 | 项内容 | 项内容 |​

方程式

行内方程式 ​​$Equations$​​展示方程式: ​​$$Equations$$​

图片

无标题: ​​![](图片链接)​​有标题:​​![可选标题](图片地址)​

引用块

​> 输入你引用的内容​

其他

上角标:​​文本内容^上角标^​​章或页水平分割线

​=========​​ 或 ​​----------​

行尾输入两个以上空格,即可添加人工行分割

YAML 头

在一个 R Markdown 文档的顶部,有一个 YAML 头,被两行 ​​---​​ 包围。这个块定义了文档的最终样式,通常包含一个标题、作者、日期和你想输出的文件类型。

支持的文件格式有三种:HTML、PDF 和 Word

---
title: "Sample"
author: "It's FOSS"
date: "2023-02-08"
output: pdf_document
---
这可以在 RStudio 中设置新文件时添加,如上节所示。

标题

在 R Markdown 中,有两种方法指定标题。我们可以使用 ​​#​​ 字符来表示不同级别的标题,比如:

# Heading Level 1
## Heading Level 2
### Heading Level 3
#### Heading Level 4
##### Heading Level 5
###### Heading Level 6
也可以用 ​​=​​ 和 ​​-​​ 分别表示一级和二级标题。

一级标题
===============
二级标题
---------------

rmarkdown 文件中不同等级的标题

列表

有两种列表,一种是无序列表,用点句符来表示:

* Item 1
* Item 2
+ Sub 1
+ Sub 2
* Item 3
另一种是有序列表,用数字来排序:

1. Item 1
2. Item 2
+ Sub 1
+ Sub 2
3. Item 3

有序和无序列表示例

段落中的文本格式

格式化文本有几种方式。

你可以使用斜体或加粗来着重表示文本:

  • 斜体:在文本前后各输入一个星号或下划线
  • 加粗:在文本前后各输入两个星号或下划线
*这里是斜体内容*
_这里是斜体内容_
**这里是加粗内容**
__这里是加粗内容__
? 你可以阅读我们的文章 ​​Markdown 中怎么让内容变成加粗和斜体​​ 来了解更多内容。

如果你想使用上角标,在想变成上角标的内容前后加上 ​​^​​ 符号。

普通文本内容^上角标^
如果你想对文本内容加删除线,在文本前后加 ​​~~​​ 符号。

~~被删除的内容~~

添加代码块

内嵌代码是 R Markdown 最主要的设计目的。我们有几种添加代码的方式。

添加普通代码块
如果你想添加一个代码块来与其他的文本进行区分,可以使用下面的语法:

```
这里输入你的代码
```
你也可以尝试 ​​对添加的代码进行高亮显示​​。

如果你想添加代码并将其输出嵌入到文档中,你可以在后面加上语言,并用大括号包裹:

```{语言}
这里输入你的代码
```
你可以用 ​​`​​ 符号来添加行内代码。

这里是 `行内代码`
它看起来是这样的:

链接

如果想添加普通文本链接,把它粘贴到行内就可以了。

https://itsfoss.com
添加超链接,使用下面的语法:

[文本内容](URL 地址)
当你想链接到本页内的某个锚点时,使用下面的语法:

[文本内容](#锚点名称)

表格

表格的语法与 Markdown 相似:

| 列表 | 列表 | 列表 |
| --- | --- | --- |
|表格项|表格项|表格项|
|表格项|表格项|表格项|

? 还想了解更多?请阅读我们的 ​​用 Markdown 创建表格​​ 指南。

图片

添加图片使用下面的语法:

![](http://example.com/logo.png)

![可选显示文本](figures/img.png)

块引用

RMarkdown 可以添加块引用。在被引用的行或段落前添加 ​​>​​(大于号)。

这里是普通文本内容。
> 这里是块引用

? 如果你想了解更多块引用的内容,请阅读我们的 ​​Markdown 引用​​ 指南。

方程式

你可以用 RMarkdown 来添加方程式和展示复杂的 LaTex 方程式。

例如:

行内方程式:$Equation$
展示方程式:$$Equation$$

在 R Markdown 文档中添加方程式

章或页水平分割线

使用三个以上星号或减号来添加章或页水平分割线。

************
------------
你可以在行尾添加两个以上的空格来添加人工行分割。

R Markdown 非常有用(备忘录)

R Markdown 备忘录.pdf 下载文档

? 你还知道其他关于 R Markdown 的内容吗?请在下面的评论区告诉我们。

有关R Markdown 语法新手指南的更多相关文章

  1. ruby - 树顶语法无限循环 - 2

    我脑子里浮现出一些关于一种新编程语言的想法,所以我想我会尝试实现它。一位friend建议我尝试使用Treetop(Rubygem)来创建一个解析器。Treetop的文档很少,我以前从未做过这种事情。我的解析器表现得好像有一个无限循环,但没有堆栈跟踪;事实证明很难追踪到。有人可以指出入门级解析/AST指南的方向吗?我真的需要一些列出规则、常见用法等的东西来使用像Treetop这样的工具。我的语法分析器在GitHub上,以防有人希望帮助我改进它。class{initialize=lambda(name){receiver.name=name}greet=lambda{IO.puts("He

  2. ruby-on-rails - Rails 应用程序中的 Rails : How are you using application_controller. rb 是新手吗? - 2

    刚入门rails,开始慢慢理解。有人可以解释或给我一些关于在application_controller中编码的好处或时间和原因的想法吗?有哪些用例。您如何为Rails应用程序使用应用程序Controller?我不想在那里放太多代码,因为据我了解,每个请求都会调用此Controller。这是真的? 最佳答案 ApplicationController实际上是您应用程序中的每个其他Controller都将从中继承的类(尽管这不是强制性的)。我同意不要用太多代码弄乱它并保持干净整洁的态度,尽管在某些情况下ApplicationContr

  3. ruby-on-rails - 使用 Sublime Text 3 突出显示 HTML 背景语法中的 ERB? - 2

    所以我在关注Railscast,我注意到在html.erb文件中,ruby代码有一个微弱的背景高亮效果,以区别于其他代码HTML文档。我知道Ryan使用TextMate。我正在使用SublimeText3。我怎样才能达到同样的效果?谢谢! 最佳答案 为SublimeText安装ERB包。假设您安装了SublimeText包管理器*,只需点击cmd+shift+P即可获得命令菜单,然后键入installpackage并选择PackageControl:InstallPackage获取包管理器菜单。在该菜单中,键入ERB并在看到包时选择

  4. ruby - 覆盖相似的方法,更短的语法 - 2

    在Ruby类中,我重写了三个方法,并且在每个方法中,我基本上做同样的事情:classExampleClassdefconfirmation_required?is_allowed&&superenddefpostpone_email_change?is_allowed&&superenddefreconfirmation_required?is_allowed&&superendend有更简洁的语法吗?如何缩短代码? 最佳答案 如何使用别名?classExampleClassdefconfirmation_required?is_a

  5. ruby 语法糖 : dealing with nils - 2

    可能已经问过了,但我找不到它。这里有2个常见的情况(对我来说,在编程Rails时......)用ruby​​编写是令人沮丧的:"astring".match(/abc(.+)abc/)[1]在这种情况下,我得到一个错误,因为字符串不匹配,因此在nil上调用[]运算符。我想找到的是比以下内容更好的替代方法:temp="astring".match(/abc(.+)abc/);temp.nil??nil:temp[1]简而言之,如果不匹配,则简单地返回nil而不会出错第二种情况是这样的:var=something.very.long.and.tedious.to.writevar=some

  6. ruby - Ruby 语法糖有 "rules"吗? - 2

    我正在学习Ruby的基础知识(刚刚开始),我遇到了Hash.[]method.它被引入a=["foo",1,"bar",2]=>["foo",1,"bar",2]Hash[*a]=>{"foo"=>1,"bar"=>2}稍加思索,我发现Hash[*a]等同于Hash.[](*a)或Hash.[]*一个。我的问题是为什么会这样。是什么让您将*a放在方括号内,是否有某种规则可以在何时何地使用“it”?编辑:我的措辞似乎造成了一些困惑。我不是在问数组扩展。我明白了。我的问题基本上是:如果[]是方法名称,为什么可以将参数放在括号内?这看起来几乎——但不完全是——就像说如果你有一个方法Foo.d

  7. ruby - 如何让Ruby捕获线程中的语法错误 - 2

    我正在尝试使用ruby​​编写一个双线程客户端,一个线程从套接字读取数据并将其打印出来,另一个线程读取本地数据并将其发送到远程服务器。我发现的问题是Ruby似乎无法捕获线程内的错误,这是一个示例:#!/usr/bin/rubyThread.new{loop{$stdout.puts"hi"abc.putsefsleep1}}loop{sleep1}显然,如果我在线程外键入abc.putsef,代码将永远不会运行,因为Ruby将报告“undefinedvariableabc”。但是,如果它在一个线程内,则没有错误报告。我的问题是,如何让Ruby捕获这样的错误?或者至少,报告线程中的错误?

  8. ruby -::在 Ruby 语法中是什么意思? - 2

    这个问题在这里已经有了答案:WhatisRuby'sdouble-colon`::`?(12个答案)关闭8年前。什么是::?@song||=::TwelveDaysSong.new

  9. ruby - ruby 乘法语句中星号中断语法前的空格 - 2

    在添加一些空格以使代码更具可读性时(与上面的代码对齐),我遇到了这个:classCdefx42endendm=C.new现在这将给出“错误数量的参数”:m.x*m.x这将给出“语法错误,意外的tSTAR,期待$end”:2/m.x*m.x这里的解析器到底发生了什么?我使用Ruby1.9.2和2.1.5进行了测试。 最佳答案 *用于运算符(42*42)和参数解包(myfun*[42,42])。当你这样做时:m.x*m.x2/m.x*m.xRuby将此解释为参数解包,而不是*运算符(即乘法)。如果您不熟悉它,参数解包(有时也称为“spl

  10. 语法类似于 GitHub Flavored Markdown 的 Ruby markdown 解释器? - 2

    我使用Jekyll运行博客,并认为我会解决RedcarpetMarkdown解释器,因为它是developedandusedbyGitHub.好吧,我只是碰巧遇到了一个错误,去检查问题,然后foundthis.Maintainersays,"Asyouprobablyhavenoticed(harharharhar)Idon'thavetimetomaintainRedcarpetanymore.It'snotapriorityforme(IfindMarkdownthoroughlyboring)andit'snotapriorityforGitHub,becausewenolong

随机推荐