R语言入门笔记:第一节,快速了解R语言——文件与基础操作
<p></p><div class="toc"><div class="toc-container-header">目录</div><ul><li>关于 R 语言的简单介绍</li><li>到什么地方去找 R 语言的教程</li><li>R 语言的基本语法</li><li>文件与路径<ul><li>为什么要注意路径问题?</li><li>关于文件格式<ul><li>R Script 与 R Markdown</li><li>R Script</li><li>R Markdown<ul><li>YAML 头部</li><li>Markdown 文档部分</li><li>可运行的代码块</li></ul></li></ul></li></ul></li></ul></div><p></p><h1 id="关于-r-语言的简单介绍">关于 R 语言的简单介绍</h1>
<p>上一期 R 语言入门笔记里面我简单介绍了 R 语言的安装和使用方法,以及各项避免踩坑的注意事项。我想把这个系列的笔记持续写下去。</p>
<p><strong>这份笔记只是我的 R 语言入门学习笔记,而不是一套 R 语言教程。换句话说:这份笔记不会事无巨细地介绍 R 语言的逐项细节,毕竟现在网上有关R的教程已经非常多了。这份笔记主要是针对 R 语言学习过程中各个容易掉进去的坑进行规避,以及根据我自身的经验提供一些学习思路。</strong></p>
<p>首先,R 语言是一门特殊的、专用于统计分析和建模的编程语言。一般情况下,我猜测大家学习R语言主要可能是因为出于以下的原因:</p>
<ol>
<li>
<p>主要从事统计分析的工作,将R语言作为自己的主力编程语言</p>
</li>
<li>
<p>主力编程语言不足以应对复杂的统计分析问题,需要 R 的辅助</p>
</li>
<li>
<p>你不知道,因为你只是一个普通的苦逼医学生,而身边的医学生都在使用 R</p>
</li>
</ol>
<p>我个人比较符合第二种情况。我通常使用 Python,R 则是刚刚开始学习。因此我也希望能和这份笔记的读者们共同进步。</p>
<h1 id="到什么地方去找-r-语言的教程">到什么地方去找 R 语言的教程</h1>
<p>考虑到 R 语言是专为统计分析设计的编程语言,所以 R 语言的许多机制也和统计分析本身有关。</p>
<p>首先需要掌握一些有关统计分析的基本概念。一旦熟悉了统计分析的基本概念,就能基本了解R语言能够帮助你完成哪些功能(统计分析需要的那些计算机功能,R 语言几乎都可以实现。)</p>
<p>首先,如果是想要了解一些有关统计分析的方法论,可以试试看这个 Bilibili 网课:统计分析轻松入门(2023修订版)。</p>
<p>关于 R 语言本身的学习,Bilibili 平台上有一些不错的网课可供参考:</p>
<ol>
<li>人话R语言教程</li>
<li>【R语言入门】小白速成与实践 全30课</li>
</ol>
<p>教材的话,我找到的这个 四川师范大学研究生公选课《数据科学中的R语言》 看上去也很不错。</p>
<h1 id="r-语言的基本语法">R 语言的基本语法</h1>
<p><strong>略。</strong></p>
<p><strong>……别人的教程都写过了,我干嘛还要再写一遍?</strong></p>
<p><strong>哎,跳过。</strong></p>
<h1 id="文件与路径">文件与路径</h1>
<h2 id="为什么要注意路径问题">为什么要注意路径问题?</h2>
<p>初次体验 R Studio 的时候,一大印象就是没有非常轻便稳定的路径管理,因为 R Studio 中终端并不会默认在工作空间里开启。</p>
<p>相比较其他我常用的 IDE 而言,如果是在 Visual Studio Code 中移动工作空间,只需要直接关闭IDE然后直接在电脑上打开另一个文件夹,右键,选择“在 Visual Studio Code 中打开”就可以很容易地在相应的工作目录运行和调试程序。但是对于 R Studio,即使你把右下角的 <code>Files</code> 栏切换到了正确的工作区目录(以防止新人不了解:就是你堆放数据文件和代码脚本的文件夹),你的终端还是在原来的那个目录里面。你这个时候去敲R的实时交互命令读取某个路径下的数据,或者运行 R 的代码文件读取数据,就要报错。</p>
<p>遇到这种情况,如果你不想在 R 命令行里面通过敲命令再切换一次,可以考虑将所有 R 语言编程活动都变成一个个独立的项目去管理。尝试在 R Studio 右上角点击 <code>Files</code>,然后新建一个 R 项目,下次打开代码直接点击后缀名为 <code>*.Rproj</code> 的项目文件,就能正确打开 R Studio 并切换正确的工作目录。</p>
<h2 id="关于文件格式">关于文件格式</h2>
<h3 id="r-script-与-r-markdown">R Script 与 R Markdown</h3>
<p>R语言的代码最常见的主要有两种文件格式:原生的R语言脚本文件(R Script),以及 R Markdown,一种R语言和Markdown相互交替书写、分段运行的奇特代码。R Script 和 R Markdown 相当于 Python 中的 <code>*.py</code> 脚本和 Jupyter Notebook 的关系。</p>
<h3 id="r-script">R Script</h3>
<p>R Script 是 R 语言的脚本,就是正常编写代码的方式。</p>
<p>主流的 R 语言的代码规范可以参照 Google的R语言编码风格指南(Google’s R Style Guide)。比如在 R Script 中 R 语言代码可以分节,用小节标题前后四个 <code>#</code> 加空格分割的形式:</p>
<pre><code class="language-r">#### hello world ####
# This is a hello world program in R
print("hello, world")
</code></pre>
<p>如果你有一个R脚本文件(比如 <code>hello.R</code>),你可以使用 <code>source()</code> 函数来加载它的内容到当前的工作空间中。这相当于在当前环境中运行这个文件的所有代码。</p>
<pre><code class="language-r"># 假设你有一个 hello.R 文件
# 定义了 Hello() 函数
source("hello.R")
Hello()
</code></pre>
<p>这样,<code>definitions.R</code> 中定义的所有函数和变量都会加载到当前的工作空间中,你可以在其他文件中使用它们。</p>
<p>有时你可能不希望加载所有定义到全局环境中,可以通过设置 <code>source()</code> 的 <code>local</code> 参数来控制代码加载到局部环境中。</p>
<pre><code class="language-r">local_env <- new.env()
source("hello.R", local = local_env)
# 使用定义在 local_env 环境中的对象
local_env$Hello()
</code></pre>
<p>如果你的定义文件非常复杂或包含多个功能模块,你可以考虑将其封装为一个 R 包。这样,你可以通过 <code>library()</code> 来引用包中的功能,并且包的组织结构可以帮助你更好地管理代码。同样地,对于下载的包也是使用 <code>library()</code> 导入。</p>
<p>还有一种方式是使用 <code>sys.source()</code>,这里刚刚入门,暂且不论。</p>
<h3 id="r-markdown">R Markdown</h3>
<p>为防止新人朋友们不知道——简单的来讲,Markdown 是用来给文章排版的,是一种极简主义的排版工具,只有标题、引用、有序列表、无序列表、斜体、加粗、超链接和图片这 8 个功能,Markdown 语法简单易学,非常适合快速编写和组织文档,足以允许我们把 R 语言代码和代码说明性文章/报告放在一起排版了。</p>
<p>熟悉Jupyter Notebook的朋友可能会知道:Jupyter Notebook 实际上是一种通过网页实时渲染的 JSON 文本,而R Markdown则是完完全全的纯文本,只是在 R Markdown 中 Markdown 和 R 语言的代码可以交替编写。这就意味着R Markdown不能保存代码运行的结果,但也不会因为巨大的图片文件而变得臃肿。</p>
<p>另一方面,尽管 Jupyter Notebook 本身就具备 R 编程的功能,但实际上很多情况下 R Markdown 比 Jupyter Notebook 的体验更好。如果你的计算机上正确配置过 \LaTeX 的话,理论上你可以通过 R Markdown 一键构建PDFL格式的报告或者论文;如果没有 \LaTeX ,Word 或者 HTML 都是没问题的。关于其详细操作方法,以后的笔记里面我们慢慢聊。</p>
<p><img src="https://img2024.cnblogs.com/blog/3231165/202408/3231165-20240806174412107-2065952353.png" alt="image" loading="lazy"></p>
<p><strong>大家在新建 R Markdown 的时候生成的文件里面就会自带简单的说明信息,事实上,我在这里无需赘述。</strong>但是出于礼貌也方便大家理解,我简记一笔:</p>
<p>简单的来讲:一个标准的 R Markdown 文件包含三个部分:YAML 头部、Markdown 文档和可运行的代码片段。这里逐一介绍:</p>
<h4 id="yaml-头部">YAML 头部</h4>
<p>YAML 头部位于文件的最上方,用前后三个短横线 <code>---</code> 包裹。它主要用来设置文档的元信息,例如标题、作者、日期、输出格式等。</p>
<pre><code class="language-yaml">---
title: "R Markdown 入门示例"
author: "盒子online_1396529"
date: "2024-07-01"
output: pdf_document
---
</code></pre>
<p>R Markdown 可以被编译成多种格式的文件,包括 PDF、HTML、Word 等,从而快速生成论文或统计分析报告。这个功能被称为 knit。选择输出格式时,只需在 YAML 头部指定 <code>output</code> 选项即可。每种输出格式都可以进行进一步的定制,例如,选择 PDF 输出时,你可以使用 \LaTeX 语法来调整排版细节。</p>
<pre><code class="language-yaml">output:
pdf_document:
latex_engine: xelatex
toc: true # 添加目录
number_sections: true # 章节自动编号
</code></pre>
<h4 id="markdown-文档部分">Markdown 文档部分</h4>
<p>Markdown 文档部分是 R Markdown 的主体内容。在这里,你可以使用 Markdown 语法编写文本、标题、列表、引用、表格、图片等。</p>
<pre><code class="language-markdown">## 标题示例
这是一个简单的段落,你可以使用 **加粗** 和 *斜体* 来突出重点。
### 列表示例
- 无序列表项1
- 无序列表项2
- 无序列表项3
1. 有序列表项1
2. 有序列表项2
3. 有序列表项3
</code></pre>
<h4 id="可运行的代码块">可运行的代码块</h4>
<p>R Markdown 的一个重要功能是可以在 Markdown 文档中嵌入 R 代码块,并在文档编译时自动运行这些代码。代码块可以生成图表、分析结果,并将这些内容直接嵌入到文档中(这个功能简直就是神了)!</p>
<p>代码块通常用上下两排三个反引号 <code>```</code> 包裹,并在第一排反引号后加上 <code>{r}</code> 指定这是一个 R 代码块(原生的 Markdown 语法在插入代码片段的时候指定编程语言的名称不加花括号)。</p>
<p>我在这里没有办法演示这个功能,因为这份笔记正是用 R Markdown 编写的。如果我另起一行写下 <code>```{r}</code> 这段内容就会直接被识别成有待运行的 R 语言代码块,而代码块的格式也就被忽略掉不会插入笔记了。</p>
<p>R Markdown 结合了 Markdown 的简洁和 R 语言的强大功能,适合用来编写包含数据分析、报告、学术论文等内容的文档。它让编写文档的过程变得更加高效和灵活,无论是日常工作中的报告,还是学术研究中的论文,R Markdown 都是一个得力的工具。总的来讲: <strong>当我们新开始一个 R 语言数据分析项目并处于数据探究阶段的时候,可以选择在一开始就直接新建 R Markdown 上手写,而不是一上来就编写 R 脚本文件。</strong></p><br><br>
来源:https://www.cnblogs.com/BOXonline1396529/p/18344302
頁:
[1]