1413 lines
80 KiB
HTML
1413 lines
80 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="zh-Hans"><head>
|
||
<script src="../../site_libs/clipboard/clipboard.min.js"></script>
|
||
<script src="../../site_libs/quarto-html/tabby.min.js"></script>
|
||
<script src="../../site_libs/quarto-html/popper.min.js"></script>
|
||
<script src="../../site_libs/quarto-html/tippy.umd.min.js"></script>
|
||
<link href="../../site_libs/quarto-html/tippy.css" rel="stylesheet">
|
||
<link href="../../site_libs/quarto-html/light-border.css" rel="stylesheet">
|
||
<link href="../../site_libs/quarto-html/quarto-syntax-highlighting-dark-31d8df3fb4b3ebd213a509f950828e75.css" rel="stylesheet" id="quarto-text-highlighting-styles"><meta charset="utf-8">
|
||
<meta name="generator" content="quarto-1.7.1">
|
||
|
||
<meta name="author" content="苏命、王为东 中国科学院大学资源与环境学院 中国科学院生态环境研究中心">
|
||
<meta name="dcterms.date" content="2025-03-17">
|
||
<title>Version: {{< var branch >}} – Data Transform</title>
|
||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, minimal-ui">
|
||
<link rel="stylesheet" href="../../site_libs/revealjs/dist/reset.css">
|
||
<link rel="stylesheet" href="../../site_libs/revealjs/dist/reveal.css">
|
||
<style>
|
||
code{white-space: pre-wrap;}
|
||
span.smallcaps{font-variant: small-caps;}
|
||
div.columns{display: flex; gap: min(4vw, 1.5em);}
|
||
div.column{flex: auto; overflow-x: auto;}
|
||
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
|
||
ul.task-list{list-style: none;}
|
||
ul.task-list li input[type="checkbox"] {
|
||
width: 0.8em;
|
||
margin: 0 0.8em 0.2em -1em; /* quarto-specific, see https://github.com/quarto-dev/quarto-cli/issues/4556 */
|
||
vertical-align: middle;
|
||
}
|
||
/* CSS for syntax highlighting */
|
||
pre > code.sourceCode { white-space: pre; position: relative; }
|
||
pre > code.sourceCode > span { line-height: 1.25; }
|
||
pre > code.sourceCode > span:empty { height: 1.2em; }
|
||
.sourceCode { overflow: visible; }
|
||
code.sourceCode > span { color: inherit; text-decoration: inherit; }
|
||
div.sourceCode { margin: 1em 0; }
|
||
pre.sourceCode { margin: 0; }
|
||
@media screen {
|
||
div.sourceCode { overflow: auto; }
|
||
}
|
||
@media print {
|
||
pre > code.sourceCode { white-space: pre-wrap; }
|
||
pre > code.sourceCode > span { display: inline-block; text-indent: -5em; padding-left: 5em; }
|
||
}
|
||
pre.numberSource code
|
||
{ counter-reset: source-line 0; }
|
||
pre.numberSource code > span
|
||
{ position: relative; left: -4em; counter-increment: source-line; }
|
||
pre.numberSource code > span > a:first-child::before
|
||
{ content: counter(source-line);
|
||
position: relative; left: -1em; text-align: right; vertical-align: baseline;
|
||
border: none; display: inline-block;
|
||
-webkit-touch-callout: none; -webkit-user-select: none;
|
||
-khtml-user-select: none; -moz-user-select: none;
|
||
-ms-user-select: none; user-select: none;
|
||
padding: 0 4px; width: 4em;
|
||
}
|
||
pre.numberSource { margin-left: 3em; padding-left: 4px; }
|
||
div.sourceCode
|
||
{ color: #f8f8f2; }
|
||
@media screen {
|
||
pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
|
||
}
|
||
code span { color: #f8f8f2; } /* Normal */
|
||
code span.al { color: #f07178; background-color: #2a0f15; font-weight: bold; } /* Alert */
|
||
code span.an { color: #d4d0ab; } /* Annotation */
|
||
code span.at { color: #00e0e0; } /* Attribute */
|
||
code span.bn { color: #d4d0ab; } /* BaseN */
|
||
code span.bu { color: #abe338; } /* BuiltIn */
|
||
code span.cf { color: #ffa07a; font-weight: bold; } /* ControlFlow */
|
||
code span.ch { color: #abe338; } /* Char */
|
||
code span.cn { color: #ffd700; } /* Constant */
|
||
code span.co { color: #f8f8f2; font-style: italic; } /* Comment */
|
||
code span.cv { color: #ffd700; } /* CommentVar */
|
||
code span.do { color: #f8f8f2; } /* Documentation */
|
||
code span.dt { color: #ffa07a; } /* DataType */
|
||
code span.dv { color: #d4d0ab; } /* DecVal */
|
||
code span.er { color: #f07178; text-decoration: underline; } /* Error */
|
||
code span.ex { color: #00e0e0; font-weight: bold; } /* Extension */
|
||
code span.fl { color: #d4d0ab; } /* Float */
|
||
code span.fu { color: #ffa07a; } /* Function */
|
||
code span.im { color: #abe338; } /* Import */
|
||
code span.in { color: #d4d0ab; } /* Information */
|
||
code span.kw { color: #ffa07a; font-weight: bold; } /* Keyword */
|
||
code span.op { color: #ffa07a; } /* Operator */
|
||
code span.ot { color: #00e0e0; } /* Other */
|
||
code span.pp { color: #dcc6e0; } /* Preprocessor */
|
||
code span.re { color: #00e0e0; background-color: #f8f8f2; } /* RegionMarker */
|
||
code span.sc { color: #abe338; } /* SpecialChar */
|
||
code span.ss { color: #abe338; } /* SpecialString */
|
||
code span.st { color: #abe338; } /* String */
|
||
code span.va { color: #00e0e0; } /* Variable */
|
||
code span.vs { color: #abe338; } /* VerbatimString */
|
||
code span.wa { color: #dcc6e0; } /* Warning */
|
||
</style>
|
||
<link rel="stylesheet" href="../../site_libs/revealjs/dist/theme/quarto-5b48f34d633aed70c74c672477009ffc.css">
|
||
<link rel="stylesheet" href="./_extensions/inst/css/revealjs.css">
|
||
<link href="../../site_libs/revealjs/plugin/quarto-line-highlight/line-highlight.css" rel="stylesheet">
|
||
<link href="../../site_libs/revealjs/plugin/reveal-menu/menu.css" rel="stylesheet">
|
||
<link href="../../site_libs/revealjs/plugin/reveal-menu/quarto-menu.css" rel="stylesheet">
|
||
<link href="../../site_libs/revealjs/plugin/reveal-chalkboard/font-awesome/css/all.css" rel="stylesheet">
|
||
<link href="../../site_libs/revealjs/plugin/reveal-chalkboard/style.css" rel="stylesheet">
|
||
<link href="../../site_libs/revealjs/plugin/reveal-pointer/pointer.css" rel="stylesheet">
|
||
<link href="../../site_libs/revealjs/plugin/quarto-support/footer.css" rel="stylesheet">
|
||
<script type="application/json" class="js-hypothesis-config">
|
||
{
|
||
"theme": "clean",
|
||
"openSidebar": false
|
||
}
|
||
</script>
|
||
<script async="" src="https://hypothes.is/embed.js"></script>
|
||
<script>
|
||
window.document.addEventListener("DOMContentLoaded", function (_event) {
|
||
document.body.classList.add('hypothesis-enabled');
|
||
});
|
||
</script>
|
||
<style type="text/css">
|
||
.reveal div.sourceCode {
|
||
margin: 0;
|
||
overflow: auto;
|
||
}
|
||
.reveal div.hanging-indent {
|
||
margin-left: 1em;
|
||
text-indent: -1em;
|
||
}
|
||
.reveal .slide:not(.center) {
|
||
height: 100%;
|
||
}
|
||
.reveal .slide.scrollable {
|
||
overflow-y: auto;
|
||
}
|
||
.reveal .footnotes {
|
||
height: 100%;
|
||
overflow-y: auto;
|
||
}
|
||
.reveal .slide .absolute {
|
||
position: absolute;
|
||
display: block;
|
||
}
|
||
.reveal .footnotes ol {
|
||
counter-reset: ol;
|
||
list-style-type: none;
|
||
margin-left: 0;
|
||
}
|
||
.reveal .footnotes ol li:before {
|
||
counter-increment: ol;
|
||
content: counter(ol) ". ";
|
||
}
|
||
.reveal .footnotes ol li > p:first-child {
|
||
display: inline-block;
|
||
}
|
||
.reveal .slide ul,
|
||
.reveal .slide ol {
|
||
margin-bottom: 0.5em;
|
||
}
|
||
.reveal .slide ul li,
|
||
.reveal .slide ol li {
|
||
margin-top: 0.4em;
|
||
margin-bottom: 0.2em;
|
||
}
|
||
.reveal .slide ul[role="tablist"] li {
|
||
margin-bottom: 0;
|
||
}
|
||
.reveal .slide ul li > *:first-child,
|
||
.reveal .slide ol li > *:first-child {
|
||
margin-block-start: 0;
|
||
}
|
||
.reveal .slide ul li > *:last-child,
|
||
.reveal .slide ol li > *:last-child {
|
||
margin-block-end: 0;
|
||
}
|
||
.reveal .slide .columns:nth-child(3) {
|
||
margin-block-start: 0.8em;
|
||
}
|
||
.reveal blockquote {
|
||
box-shadow: none;
|
||
}
|
||
.reveal .tippy-content>* {
|
||
margin-top: 0.2em;
|
||
margin-bottom: 0.7em;
|
||
}
|
||
.reveal .tippy-content>*:last-child {
|
||
margin-bottom: 0.2em;
|
||
}
|
||
.reveal .slide > img.stretch.quarto-figure-center,
|
||
.reveal .slide > img.r-stretch.quarto-figure-center {
|
||
display: block;
|
||
margin-left: auto;
|
||
margin-right: auto;
|
||
}
|
||
.reveal .slide > img.stretch.quarto-figure-left,
|
||
.reveal .slide > img.r-stretch.quarto-figure-left {
|
||
display: block;
|
||
margin-left: 0;
|
||
margin-right: auto;
|
||
}
|
||
.reveal .slide > img.stretch.quarto-figure-right,
|
||
.reveal .slide > img.r-stretch.quarto-figure-right {
|
||
display: block;
|
||
margin-left: auto;
|
||
margin-right: 0;
|
||
}
|
||
</style>
|
||
</head>
|
||
<body class="quarto-dark">
|
||
<div class="reveal">
|
||
<div class="slides">
|
||
|
||
<section id="title-slide" class="quarto-title-block center">
|
||
<h1 class="title">Data Transform</h1>
|
||
<p class="subtitle">《区域水环境污染数据分析实践》<br>Data analysis practice of regional water environment pollution</p>
|
||
|
||
<div class="quarto-title-authors">
|
||
<div class="quarto-title-author">
|
||
<div class="quarto-title-author-name">
|
||
苏命、王为东<br>中国科学院大学资源与环境学院<br>中国科学院生态环境研究中心
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<p class="date">2025-03-17</p>
|
||
</section>
|
||
<section id="tidyverse风格数据分析总体流程" class="slide level2">
|
||
<h2><code>tidyverse</code>风格数据分析总体流程</h2>
|
||
|
||
<img data-src="../../image/data-science/transform.png" class="r-stretch"></section>
|
||
<section id="dplyr-cheatsheet" class="slide level2">
|
||
<h2><a href="../../image/cheatsheet/data-transformation.pdf">dplyr cheatsheet</a></h2>
|
||
|
||
<img data-src="../../image/cheatsheet/data-transformation.svg" class="r-stretch"></section>
|
||
<section id="查看数据" class="slide level2">
|
||
<h2>查看数据</h2>
|
||
<div class="cell">
|
||
<div class="sourceCode cell-code" id="cb1"><pre class="sourceCode numberSource r number-lines code-with-copy"><code class="sourceCode r"><span id="cb1-1"><a></a>flights</span></code><button title="复制到剪贴板" class="code-copy-button"><i class="bi"></i></button></pre></div>
|
||
<div class="cell-output cell-output-stdout">
|
||
<pre><code># A tibble: 336,776 × 19
|
||
year month day dep_time sched_dep_time dep_delay arr_time sched_arr_time
|
||
<int> <int> <int> <int> <int> <dbl> <int> <int>
|
||
1 2013 1 1 517 515 2 830 819
|
||
2 2013 1 1 533 529 4 850 830
|
||
3 2013 1 1 542 540 2 923 850
|
||
4 2013 1 1 544 545 -1 1004 1022
|
||
5 2013 1 1 554 600 -6 812 837
|
||
6 2013 1 1 554 558 -4 740 728
|
||
7 2013 1 1 555 600 -5 913 854
|
||
8 2013 1 1 557 600 -3 709 723
|
||
9 2013 1 1 557 600 -3 838 846
|
||
10 2013 1 1 558 600 -2 753 745
|
||
# ℹ 336,766 more rows
|
||
# ℹ 11 more variables: arr_delay <dbl>, carrier <chr>, flight <int>,
|
||
# tailnum <chr>, origin <chr>, dest <chr>, air_time <dbl>, distance <dbl>,
|
||
# hour <dbl>, minute <dbl>, time_hour <dttm></code></pre>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
<section id="选择列" class="slide level2">
|
||
<h2>选择列</h2>
|
||
<div class="cell">
|
||
<div class="sourceCode cell-code" id="cb3"><pre class="sourceCode numberSource r number-lines code-with-copy"><code class="sourceCode r"><span id="cb3-1"><a></a>flights <span class="sc">|></span> </span>
|
||
<span id="cb3-2"><a></a> <span class="fu">select</span>(year, month, day)</span></code><button title="复制到剪贴板" class="code-copy-button"><i class="bi"></i></button></pre></div>
|
||
</div>
|
||
</section>
|
||
<section id="选择列-1" class="slide level2">
|
||
<h2>选择列</h2>
|
||
<div class="cell">
|
||
<div class="sourceCode cell-code" id="cb4"><pre class="sourceCode numberSource r number-lines code-with-copy"><code class="sourceCode r"><span id="cb4-1"><a></a>flights <span class="sc">|></span> </span>
|
||
<span id="cb4-2"><a></a> <span class="fu">select</span>(year<span class="sc">:</span>day)</span></code><button title="复制到剪贴板" class="code-copy-button"><i class="bi"></i></button></pre></div>
|
||
</div>
|
||
</section>
|
||
<section id="选择列-2" class="slide level2">
|
||
<h2>选择列</h2>
|
||
<div class="cell">
|
||
<div class="sourceCode cell-code" id="cb5"><pre class="sourceCode numberSource r number-lines code-with-copy"><code class="sourceCode r"><span id="cb5-1"><a></a>flights <span class="sc">|></span> </span>
|
||
<span id="cb5-2"><a></a><span class="fu">select</span>(<span class="dv">3</span><span class="sc">:</span><span class="dv">5</span>)</span></code><button title="复制到剪贴板" class="code-copy-button"><i class="bi"></i></button></pre></div>
|
||
<div class="cell-output cell-output-stdout">
|
||
<pre><code># A tibble: 336,776 × 3
|
||
day dep_time sched_dep_time
|
||
<int> <int> <int>
|
||
1 1 517 515
|
||
2 1 533 529
|
||
3 1 542 540
|
||
4 1 544 545
|
||
5 1 554 600
|
||
6 1 554 558
|
||
7 1 555 600
|
||
8 1 557 600
|
||
9 1 557 600
|
||
10 1 558 600
|
||
# ℹ 336,766 more rows</code></pre>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
<section id="选择列-3" class="slide level2">
|
||
<h2>选择列</h2>
|
||
<div class="cell">
|
||
<div class="sourceCode cell-code" id="cb7"><pre class="sourceCode numberSource r number-lines code-with-copy"><code class="sourceCode r"><span id="cb7-1"><a></a>flights <span class="sc">|></span> </span>
|
||
<span id="cb7-2"><a></a> <span class="fu">select</span>(<span class="sc">!</span>year<span class="sc">:</span>day)</span></code><button title="复制到剪贴板" class="code-copy-button"><i class="bi"></i></button></pre></div>
|
||
<div class="cell-output cell-output-stdout">
|
||
<pre><code># A tibble: 336,776 × 16
|
||
dep_time sched_dep_time dep_delay arr_time sched_arr_time arr_delay carrier
|
||
<int> <int> <dbl> <int> <int> <dbl> <chr>
|
||
1 517 515 2 830 819 11 UA
|
||
2 533 529 4 850 830 20 UA
|
||
3 542 540 2 923 850 33 AA
|
||
4 544 545 -1 1004 1022 -18 B6
|
||
5 554 600 -6 812 837 -25 DL
|
||
6 554 558 -4 740 728 12 UA
|
||
7 555 600 -5 913 854 19 B6
|
||
8 557 600 -3 709 723 -14 EV
|
||
9 557 600 -3 838 846 -8 B6
|
||
10 558 600 -2 753 745 8 AA
|
||
# ℹ 336,766 more rows
|
||
# ℹ 9 more variables: flight <int>, tailnum <chr>, origin <chr>, dest <chr>,
|
||
# air_time <dbl>, distance <dbl>, hour <dbl>, minute <dbl>, time_hour <dttm></code></pre>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
<section id="选择列-4" class="slide level2">
|
||
<h2>选择列</h2>
|
||
<div class="cell">
|
||
<div class="sourceCode cell-code" id="cb9"><pre class="sourceCode numberSource r number-lines code-with-copy"><code class="sourceCode r"><span id="cb9-1"><a></a>flights <span class="sc">|></span> </span>
|
||
<span id="cb9-2"><a></a> <span class="fu">select</span>(<span class="sc">-</span>(year<span class="sc">:</span>day))</span></code><button title="复制到剪贴板" class="code-copy-button"><i class="bi"></i></button></pre></div>
|
||
<div class="cell-output cell-output-stdout">
|
||
<pre><code># A tibble: 336,776 × 16
|
||
dep_time sched_dep_time dep_delay arr_time sched_arr_time arr_delay carrier
|
||
<int> <int> <dbl> <int> <int> <dbl> <chr>
|
||
1 517 515 2 830 819 11 UA
|
||
2 533 529 4 850 830 20 UA
|
||
3 542 540 2 923 850 33 AA
|
||
4 544 545 -1 1004 1022 -18 B6
|
||
5 554 600 -6 812 837 -25 DL
|
||
6 554 558 -4 740 728 12 UA
|
||
7 555 600 -5 913 854 19 B6
|
||
8 557 600 -3 709 723 -14 EV
|
||
9 557 600 -3 838 846 -8 B6
|
||
10 558 600 -2 753 745 8 AA
|
||
# ℹ 336,766 more rows
|
||
# ℹ 9 more variables: flight <int>, tailnum <chr>, origin <chr>, dest <chr>,
|
||
# air_time <dbl>, distance <dbl>, hour <dbl>, minute <dbl>, time_hour <dttm></code></pre>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
<section id="选择列-5" class="slide level2">
|
||
<h2>选择列</h2>
|
||
<div class="cell">
|
||
<div class="sourceCode cell-code" id="cb11"><pre class="sourceCode numberSource r number-lines code-with-copy"><code class="sourceCode r"><span id="cb11-1"><a></a>flights <span class="sc">|></span> </span>
|
||
<span id="cb11-2"><a></a> <span class="fu">select</span>(<span class="fu">where</span>(is.character))</span></code><button title="复制到剪贴板" class="code-copy-button"><i class="bi"></i></button></pre></div>
|
||
<div class="cell-output cell-output-stdout">
|
||
<pre><code># A tibble: 336,776 × 4
|
||
carrier tailnum origin dest
|
||
<chr> <chr> <chr> <chr>
|
||
1 UA N14228 EWR IAH
|
||
2 UA N24211 LGA IAH
|
||
3 AA N619AA JFK MIA
|
||
4 B6 N804JB JFK BQN
|
||
5 DL N668DN LGA ATL
|
||
6 UA N39463 EWR ORD
|
||
7 B6 N516JB EWR FLL
|
||
8 EV N829AS LGA IAD
|
||
9 B6 N593JB JFK MCO
|
||
10 AA N3ALAA LGA ORD
|
||
# ℹ 336,766 more rows</code></pre>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
<section id="选择列-6" class="slide level2">
|
||
<h2>选择列</h2>
|
||
<div class="cell">
|
||
<div class="sourceCode cell-code" id="cb13"><pre class="sourceCode numberSource r number-lines code-with-copy"><code class="sourceCode r"><span id="cb13-1"><a></a>flights <span class="sc">|></span> </span>
|
||
<span id="cb13-2"><a></a> <span class="fu">select</span>(<span class="sc">!</span><span class="fu">where</span>(is.character)) <span class="sc">|></span></span>
|
||
<span id="cb13-3"><a></a> <span class="fu">select</span>(<span class="fu">contains</span>(<span class="st">"_"</span>))</span></code><button title="复制到剪贴板" class="code-copy-button"><i class="bi"></i></button></pre></div>
|
||
<div class="cell-output cell-output-stdout">
|
||
<pre><code># A tibble: 336,776 × 8
|
||
dep_time sched_dep_time dep_delay arr_time sched_arr_time arr_delay air_time
|
||
<int> <int> <dbl> <int> <int> <dbl> <dbl>
|
||
1 517 515 2 830 819 11 227
|
||
2 533 529 4 850 830 20 227
|
||
3 542 540 2 923 850 33 160
|
||
4 544 545 -1 1004 1022 -18 183
|
||
5 554 600 -6 812 837 -25 116
|
||
6 554 558 -4 740 728 12 150
|
||
7 555 600 -5 913 854 19 158
|
||
8 557 600 -3 709 723 -14 53
|
||
9 557 600 -3 838 846 -8 140
|
||
10 558 600 -2 753 745 8 138
|
||
# ℹ 336,766 more rows
|
||
# ℹ 1 more variable: time_hour <dttm></code></pre>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
<section id="选择列-7" class="slide level2">
|
||
<h2>选择列</h2>
|
||
<div class="cell">
|
||
<div class="sourceCode cell-code" id="cb15"><pre class="sourceCode numberSource r number-lines code-with-copy"><code class="sourceCode r"><span id="cb15-1"><a></a>flights <span class="sc">|></span> </span>
|
||
<span id="cb15-2"><a></a> <span class="fu">select</span>(<span class="at">tail_num =</span> tailnum)</span></code><button title="复制到剪贴板" class="code-copy-button"><i class="bi"></i></button></pre></div>
|
||
<div class="cell-output cell-output-stdout">
|
||
<pre><code># A tibble: 336,776 × 1
|
||
tail_num
|
||
<chr>
|
||
1 N14228
|
||
2 N24211
|
||
3 N619AA
|
||
4 N804JB
|
||
5 N668DN
|
||
6 N39463
|
||
7 N516JB
|
||
8 N829AS
|
||
9 N593JB
|
||
10 N3ALAA
|
||
# ℹ 336,766 more rows</code></pre>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
<section id="选择列-8" class="slide level2">
|
||
<h2>选择列</h2>
|
||
<div class="cell">
|
||
<div class="sourceCode cell-code" id="cb17"><pre class="sourceCode numberSource r number-lines code-with-copy"><code class="sourceCode r"><span id="cb17-1"><a></a>flights <span class="sc">|></span> </span>
|
||
<span id="cb17-2"><a></a> <span class="fu">select</span>(air_time, <span class="fu">everything</span>())</span></code><button title="复制到剪贴板" class="code-copy-button"><i class="bi"></i></button></pre></div>
|
||
<div class="cell-output cell-output-stdout">
|
||
<pre><code># A tibble: 336,776 × 19
|
||
air_time year month day dep_time sched_dep_time dep_delay arr_time
|
||
<dbl> <int> <int> <int> <int> <int> <dbl> <int>
|
||
1 227 2013 1 1 517 515 2 830
|
||
2 227 2013 1 1 533 529 4 850
|
||
3 160 2013 1 1 542 540 2 923
|
||
4 183 2013 1 1 544 545 -1 1004
|
||
5 116 2013 1 1 554 600 -6 812
|
||
6 150 2013 1 1 554 558 -4 740
|
||
7 158 2013 1 1 555 600 -5 913
|
||
8 53 2013 1 1 557 600 -3 709
|
||
9 140 2013 1 1 557 600 -3 838
|
||
10 138 2013 1 1 558 600 -2 753
|
||
# ℹ 336,766 more rows
|
||
# ℹ 11 more variables: sched_arr_time <int>, arr_delay <dbl>, carrier <chr>,
|
||
# flight <int>, tailnum <chr>, origin <chr>, dest <chr>, distance <dbl>,
|
||
# hour <dbl>, minute <dbl>, time_hour <dttm></code></pre>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
<section id="重命名" class="slide level2">
|
||
<h2>重命名</h2>
|
||
<div class="cell">
|
||
<div class="sourceCode cell-code" id="cb19"><pre class="sourceCode numberSource r number-lines code-with-copy"><code class="sourceCode r"><span id="cb19-1"><a></a>flights <span class="sc">|></span> </span>
|
||
<span id="cb19-2"><a></a> <span class="fu">rename</span>(<span class="at">tail_num =</span> tailnum)</span></code><button title="复制到剪贴板" class="code-copy-button"><i class="bi"></i></button></pre></div>
|
||
<div class="cell-output cell-output-stdout">
|
||
<pre><code># A tibble: 336,776 × 19
|
||
year month day dep_time sched_dep_time dep_delay arr_time sched_arr_time
|
||
<int> <int> <int> <int> <int> <dbl> <int> <int>
|
||
1 2013 1 1 517 515 2 830 819
|
||
2 2013 1 1 533 529 4 850 830
|
||
3 2013 1 1 542 540 2 923 850
|
||
4 2013 1 1 544 545 -1 1004 1022
|
||
5 2013 1 1 554 600 -6 812 837
|
||
6 2013 1 1 554 558 -4 740 728
|
||
7 2013 1 1 555 600 -5 913 854
|
||
8 2013 1 1 557 600 -3 709 723
|
||
9 2013 1 1 557 600 -3 838 846
|
||
10 2013 1 1 558 600 -2 753 745
|
||
# ℹ 336,766 more rows
|
||
# ℹ 11 more variables: arr_delay <dbl>, carrier <chr>, flight <int>,
|
||
# tail_num <chr>, origin <chr>, dest <chr>, air_time <dbl>, distance <dbl>,
|
||
# hour <dbl>, minute <dbl>, time_hour <dttm></code></pre>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
<section id="重命名-1" class="slide level2">
|
||
<h2>重命名</h2>
|
||
<div class="cell">
|
||
<div class="sourceCode cell-code" id="cb21"><pre class="sourceCode numberSource r number-lines code-with-copy"><code class="sourceCode r"><span id="cb21-1"><a></a>flights <span class="sc">|></span> </span>
|
||
<span id="cb21-2"><a></a> <span class="fu">rename</span>(年份 <span class="ot">=</span> <span class="dv">1</span>) <span class="sc">|></span></span>
|
||
<span id="cb21-3"><a></a> <span class="fu">rename</span>(月份 <span class="ot">=</span> <span class="dv">2</span>)</span></code><button title="复制到剪贴板" class="code-copy-button"><i class="bi"></i></button></pre></div>
|
||
<div class="cell-output cell-output-stdout">
|
||
<pre><code># A tibble: 336,776 × 19
|
||
年份 月份 day dep_time sched_dep_time dep_delay arr_time sched_arr_time
|
||
<int> <int> <int> <int> <int> <dbl> <int> <int>
|
||
1 2013 1 1 517 515 2 830 819
|
||
2 2013 1 1 533 529 4 850 830
|
||
3 2013 1 1 542 540 2 923 850
|
||
4 2013 1 1 544 545 -1 1004 1022
|
||
5 2013 1 1 554 600 -6 812 837
|
||
6 2013 1 1 554 558 -4 740 728
|
||
7 2013 1 1 555 600 -5 913 854
|
||
8 2013 1 1 557 600 -3 709 723
|
||
9 2013 1 1 557 600 -3 838 846
|
||
10 2013 1 1 558 600 -2 753 745
|
||
# ℹ 336,766 more rows
|
||
# ℹ 11 more variables: arr_delay <dbl>, carrier <chr>, flight <int>,
|
||
# tailnum <chr>, origin <chr>, dest <chr>, air_time <dbl>, distance <dbl>,
|
||
# hour <dbl>, minute <dbl>, time_hour <dttm></code></pre>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
<section id="重命名-2" class="slide level2">
|
||
<h2>重命名</h2>
|
||
<div class="cell">
|
||
<div class="sourceCode cell-code" id="cb23"><pre class="sourceCode numberSource r number-lines code-with-copy"><code class="sourceCode r"><span id="cb23-1"><a></a>flights <span class="sc">|></span> <span class="fu">select</span>(<span class="dv">1</span><span class="sc">:</span><span class="dv">4</span>) <span class="sc">|></span> <span class="fu">head</span>(<span class="at">n =</span> <span class="dv">3</span>)</span></code><button title="复制到剪贴板" class="code-copy-button"><i class="bi"></i></button></pre></div>
|
||
<div class="cell-output cell-output-stdout">
|
||
<pre><code># A tibble: 3 × 4
|
||
year month day dep_time
|
||
<int> <int> <int> <int>
|
||
1 2013 1 1 517
|
||
2 2013 1 1 533
|
||
3 2013 1 1 542</code></pre>
|
||
</div>
|
||
<div class="sourceCode cell-code" id="cb25"><pre class="sourceCode numberSource r number-lines code-with-copy"><code class="sourceCode r"><span id="cb25-1"><a></a><span class="co"># 重命名</span></span>
|
||
<span id="cb25-2"><a></a>flights <span class="sc">|></span> <span class="fu">select</span>(<span class="dv">1</span><span class="sc">:</span><span class="dv">4</span>) <span class="sc">|></span> <span class="fu">head</span>(<span class="at">n =</span> <span class="dv">3</span>) <span class="sc">|></span></span>
|
||
<span id="cb25-3"><a></a> <span class="fu">rename_all</span>(<span class="sc">~</span><span class="fu">c</span>(<span class="st">"c1"</span>, <span class="st">"c2"</span>, <span class="st">"c3"</span>, <span class="st">"c4"</span>))</span></code><button title="复制到剪贴板" class="code-copy-button"><i class="bi"></i></button></pre></div>
|
||
<div class="cell-output cell-output-stdout">
|
||
<pre><code># A tibble: 3 × 4
|
||
c1 c2 c3 c4
|
||
<int> <int> <int> <int>
|
||
1 2013 1 1 517
|
||
2 2013 1 1 533
|
||
3 2013 1 1 542</code></pre>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
<section id="重命名-3" class="slide level2">
|
||
<h2>重命名</h2>
|
||
<div class="cell">
|
||
<div class="sourceCode cell-code" id="cb27"><pre class="sourceCode numberSource r number-lines code-with-copy"><code class="sourceCode r"><span id="cb27-1"><a></a>flights <span class="sc">|></span> <span class="fu">select</span>(<span class="dv">1</span><span class="sc">:</span><span class="dv">4</span>) <span class="sc">|></span> <span class="fu">head</span>(<span class="at">n =</span> <span class="dv">3</span>)</span></code><button title="复制到剪贴板" class="code-copy-button"><i class="bi"></i></button></pre></div>
|
||
<div class="cell-output cell-output-stdout">
|
||
<pre><code># A tibble: 3 × 4
|
||
year month day dep_time
|
||
<int> <int> <int> <int>
|
||
1 2013 1 1 517
|
||
2 2013 1 1 533
|
||
3 2013 1 1 542</code></pre>
|
||
</div>
|
||
<div class="sourceCode cell-code" id="cb29"><pre class="sourceCode numberSource r number-lines code-with-copy"><code class="sourceCode r"><span id="cb29-1"><a></a><span class="co"># 重命名</span></span>
|
||
<span id="cb29-2"><a></a>flights <span class="sc">|></span> <span class="fu">select</span>(<span class="dv">1</span><span class="sc">:</span><span class="dv">4</span>) <span class="sc">|></span> <span class="fu">head</span>(<span class="at">n =</span> <span class="dv">3</span>) <span class="sc">|></span></span>
|
||
<span id="cb29-3"><a></a> <span class="fu">rename_all</span>(toupper)</span></code><button title="复制到剪贴板" class="code-copy-button"><i class="bi"></i></button></pre></div>
|
||
<div class="cell-output cell-output-stdout">
|
||
<pre><code># A tibble: 3 × 4
|
||
YEAR MONTH DAY DEP_TIME
|
||
<int> <int> <int> <int>
|
||
1 2013 1 1 517
|
||
2 2013 1 1 533
|
||
3 2013 1 1 542</code></pre>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
<section id="重命名-4" class="slide level2">
|
||
<h2>重命名</h2>
|
||
<div class="cell">
|
||
<div class="sourceCode cell-code" id="cb31"><pre class="sourceCode numberSource r number-lines code-with-copy"><code class="sourceCode r"><span id="cb31-1"><a></a>flights <span class="sc">|></span> <span class="fu">select</span>(<span class="dv">1</span><span class="sc">:</span><span class="dv">4</span>) <span class="sc">|></span> <span class="fu">head</span>(<span class="at">n =</span> <span class="dv">3</span>)</span></code><button title="复制到剪贴板" class="code-copy-button"><i class="bi"></i></button></pre></div>
|
||
<div class="cell-output cell-output-stdout">
|
||
<pre><code># A tibble: 3 × 4
|
||
year month day dep_time
|
||
<int> <int> <int> <int>
|
||
1 2013 1 1 517
|
||
2 2013 1 1 533
|
||
3 2013 1 1 542</code></pre>
|
||
</div>
|
||
<div class="sourceCode cell-code" id="cb33"><pre class="sourceCode numberSource r number-lines code-with-copy"><code class="sourceCode r"><span id="cb33-1"><a></a><span class="co"># 重命名</span></span>
|
||
<span id="cb33-2"><a></a>flights <span class="sc">|></span> <span class="fu">select</span>(<span class="dv">1</span><span class="sc">:</span><span class="dv">4</span>) <span class="sc">|></span> <span class="fu">head</span>(<span class="at">n =</span> <span class="dv">3</span>) <span class="sc">|></span></span>
|
||
<span id="cb33-3"><a></a> <span class="fu">rename_all</span>(<span class="sc">~</span><span class="fu">paste0</span>(<span class="fu">toupper</span>(.), <span class="st">"_NEW"</span>))</span></code><button title="复制到剪贴板" class="code-copy-button"><i class="bi"></i></button></pre></div>
|
||
<div class="cell-output cell-output-stdout">
|
||
<pre><code># A tibble: 3 × 4
|
||
YEAR_NEW MONTH_NEW DAY_NEW DEP_TIME_NEW
|
||
<int> <int> <int> <int>
|
||
1 2013 1 1 517
|
||
2 2013 1 1 533
|
||
3 2013 1 1 542</code></pre>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
<section id="练习" class="slide level2">
|
||
<h2>练习</h2>
|
||
<p>将含有下划线的列名中的下划线去掉。</p>
|
||
<div class="cell">
|
||
<div class="sourceCode cell-code" id="cb35"><pre class="sourceCode numberSource r number-lines code-with-copy"><code class="sourceCode r"><span id="cb35-1"><a></a>flights <span class="sc">|></span> <span class="fu">select</span>(<span class="dv">1</span><span class="sc">:</span><span class="dv">4</span>) <span class="sc">|></span> <span class="fu">head</span>(<span class="at">n =</span> <span class="dv">3</span>)</span></code><button title="复制到剪贴板" class="code-copy-button"><i class="bi"></i></button></pre></div>
|
||
<div class="cell-output cell-output-stdout">
|
||
<pre><code># A tibble: 3 × 4
|
||
year month day dep_time
|
||
<int> <int> <int> <int>
|
||
1 2013 1 1 517
|
||
2 2013 1 1 533
|
||
3 2013 1 1 542</code></pre>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
<section id="练习-1" class="slide level2">
|
||
<h2>练习</h2>
|
||
<p>将<code>airqualitydf</code>中列名的单位信息去除(前5列)。</p>
|
||
<div class="cell">
|
||
<div class="sourceCode cell-code" id="cb37"><pre class="sourceCode numberSource r number-lines code-with-copy"><code class="sourceCode r"><span id="cb37-1"><a></a>airqualitydf <span class="ot"><-</span> readxl<span class="sc">::</span><span class="fu">read_xlsx</span>(<span class="st">"../../data/airquality.xlsx"</span>, <span class="at">sheet =</span> <span class="dv">2</span>)</span>
|
||
<span id="cb37-2"><a></a>airqualitydf <span class="sc">|></span> <span class="fu">select</span>(<span class="dv">1</span><span class="sc">:</span><span class="dv">5</span>)</span></code><button title="复制到剪贴板" class="code-copy-button"><i class="bi"></i></button></pre></div>
|
||
<div class="cell-output cell-output-stdout">
|
||
<pre><code># A tibble: 20,088 × 5
|
||
datetime site `CO_mg/m3` `CO_24h_mg/m3` `NO2_μg/m3`
|
||
<dttm> <chr> <dbl> <dbl> <dbl>
|
||
1 2024-03-19 01:00:00 1001A 0.1 0.4 5
|
||
2 2024-03-19 01:00:00 1003A 0.2 0.4 9
|
||
3 2024-03-19 01:00:00 1004A 0.2 0.4 4
|
||
4 2024-03-19 01:00:00 1005A 0.1 0.3 6
|
||
5 2024-03-19 01:00:00 1006A 0.1 0.4 5
|
||
6 2024-03-19 01:00:00 1007A 0.3 0.5 6
|
||
7 2024-03-19 01:00:00 1008A 0.2 0.4 2
|
||
8 2024-03-19 01:00:00 1009A 0.2 0.4 2
|
||
9 2024-03-19 01:00:00 1010A 0.1 0.3 2
|
||
10 2024-03-19 01:00:00 1011A 0.2 0.4 12
|
||
# ℹ 20,078 more rows</code></pre>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
<section id="filter" class="slide level2">
|
||
<h2><code>filter</code></h2>
|
||
<div class="cell">
|
||
<div class="sourceCode cell-code" id="cb39"><pre class="sourceCode numberSource r number-lines code-with-copy"><code class="sourceCode r"><span id="cb39-1"><a></a>flights <span class="sc">|></span> </span>
|
||
<span id="cb39-2"><a></a> <span class="fu">filter</span>(dep_delay <span class="sc">></span> <span class="dv">120</span>)</span></code><button title="复制到剪贴板" class="code-copy-button"><i class="bi"></i></button></pre></div>
|
||
<div class="cell-output cell-output-stdout">
|
||
<pre><code># A tibble: 9,723 × 19
|
||
year month day dep_time sched_dep_time dep_delay arr_time sched_arr_time
|
||
<int> <int> <int> <int> <int> <dbl> <int> <int>
|
||
1 2013 1 1 848 1835 853 1001 1950
|
||
2 2013 1 1 957 733 144 1056 853
|
||
3 2013 1 1 1114 900 134 1447 1222
|
||
4 2013 1 1 1540 1338 122 2020 1825
|
||
5 2013 1 1 1815 1325 290 2120 1542
|
||
6 2013 1 1 1842 1422 260 1958 1535
|
||
7 2013 1 1 1856 1645 131 2212 2005
|
||
8 2013 1 1 1934 1725 129 2126 1855
|
||
9 2013 1 1 1938 1703 155 2109 1823
|
||
10 2013 1 1 1942 1705 157 2124 1830
|
||
# ℹ 9,713 more rows
|
||
# ℹ 11 more variables: arr_delay <dbl>, carrier <chr>, flight <int>,
|
||
# tailnum <chr>, origin <chr>, dest <chr>, air_time <dbl>, distance <dbl>,
|
||
# hour <dbl>, minute <dbl>, time_hour <dttm></code></pre>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
<section id="filter-练习" class="slide level2">
|
||
<h2>filter 练习</h2>
|
||
<p>Flights that departed on January 1.</p>
|
||
<div class="cell">
|
||
<div class="cell-output cell-output-stdout">
|
||
<pre><code># A tibble: 842 × 19
|
||
year month day dep_time sched_dep_time dep_delay arr_time sched_arr_time
|
||
<int> <int> <int> <int> <int> <dbl> <int> <int>
|
||
1 2013 1 1 517 515 2 830 819
|
||
2 2013 1 1 533 529 4 850 830
|
||
3 2013 1 1 542 540 2 923 850
|
||
4 2013 1 1 544 545 -1 1004 1022
|
||
5 2013 1 1 554 600 -6 812 837
|
||
6 2013 1 1 554 558 -4 740 728
|
||
7 2013 1 1 555 600 -5 913 854
|
||
8 2013 1 1 557 600 -3 709 723
|
||
9 2013 1 1 557 600 -3 838 846
|
||
10 2013 1 1 558 600 -2 753 745
|
||
# ℹ 832 more rows
|
||
# ℹ 11 more variables: arr_delay <dbl>, carrier <chr>, flight <int>,
|
||
# tailnum <chr>, origin <chr>, dest <chr>, air_time <dbl>, distance <dbl>,
|
||
# hour <dbl>, minute <dbl>, time_hour <dttm></code></pre>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
<section id="filter-练习-1" class="slide level2">
|
||
<h2>filter 练习</h2>
|
||
<p>Select flights that departed in January or February</p>
|
||
<div class="cell">
|
||
<div class="cell-output cell-output-stdout">
|
||
<pre><code># A tibble: 51,955 × 19
|
||
year month day dep_time sched_dep_time dep_delay arr_time sched_arr_time
|
||
<int> <int> <int> <int> <int> <dbl> <int> <int>
|
||
1 2013 1 1 517 515 2 830 819
|
||
2 2013 1 1 533 529 4 850 830
|
||
3 2013 1 1 542 540 2 923 850
|
||
4 2013 1 1 544 545 -1 1004 1022
|
||
5 2013 1 1 554 600 -6 812 837
|
||
6 2013 1 1 554 558 -4 740 728
|
||
7 2013 1 1 555 600 -5 913 854
|
||
8 2013 1 1 557 600 -3 709 723
|
||
9 2013 1 1 557 600 -3 838 846
|
||
10 2013 1 1 558 600 -2 753 745
|
||
# ℹ 51,945 more rows
|
||
# ℹ 11 more variables: arr_delay <dbl>, carrier <chr>, flight <int>,
|
||
# tailnum <chr>, origin <chr>, dest <chr>, air_time <dbl>, distance <dbl>,
|
||
# hour <dbl>, minute <dbl>, time_hour <dttm></code></pre>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
<section id="filter-练习-2" class="slide level2">
|
||
<h2>filter 练习</h2>
|
||
<div class="cell">
|
||
<div class="sourceCode cell-code" id="cb43"><pre class="sourceCode numberSource r number-lines code-with-copy"><code class="sourceCode r"><span id="cb43-1"><a></a>jan1 <span class="ot"><-</span> flights <span class="sc">|></span> </span>
|
||
<span id="cb43-2"><a></a> <span class="fu">filter</span>(month <span class="sc">==</span> <span class="dv">1</span> <span class="sc">&</span> day <span class="sc">==</span> <span class="dv">1</span>)</span></code><button title="复制到剪贴板" class="code-copy-button"><i class="bi"></i></button></pre></div>
|
||
</div>
|
||
</section>
|
||
<section id="filter-1" class="slide level2">
|
||
<h2>filter</h2>
|
||
<div class="cell">
|
||
<div class="sourceCode cell-code" id="cb44"><pre class="sourceCode numberSource r number-lines code-with-copy"><code class="sourceCode r"><span id="cb44-1"><a></a>flights <span class="sc">|></span> </span>
|
||
<span id="cb44-2"><a></a> <span class="fu">filter</span>(<span class="at">month =</span> <span class="dv">1</span>)</span></code><button title="复制到剪贴板" class="code-copy-button"><i class="bi"></i></button></pre></div>
|
||
</div>
|
||
</section>
|
||
<section id="filter-2" class="slide level2">
|
||
<h2>filter</h2>
|
||
<div class="cell">
|
||
<div class="sourceCode cell-code" id="cb45"><pre class="sourceCode numberSource r number-lines code-with-copy"><code class="sourceCode r"><span id="cb45-1"><a></a>flights <span class="sc">|></span> </span>
|
||
<span id="cb45-2"><a></a> <span class="fu">filter</span>(month <span class="sc">==</span> <span class="dv">1</span> <span class="sc">|</span> <span class="dv">2</span>)</span></code><button title="复制到剪贴板" class="code-copy-button"><i class="bi"></i></button></pre></div>
|
||
<div class="cell-output cell-output-stdout">
|
||
<pre><code># A tibble: 336,776 × 19
|
||
year month day dep_time sched_dep_time dep_delay arr_time sched_arr_time
|
||
<int> <int> <int> <int> <int> <dbl> <int> <int>
|
||
1 2013 1 1 517 515 2 830 819
|
||
2 2013 1 1 533 529 4 850 830
|
||
3 2013 1 1 542 540 2 923 850
|
||
4 2013 1 1 544 545 -1 1004 1022
|
||
5 2013 1 1 554 600 -6 812 837
|
||
6 2013 1 1 554 558 -4 740 728
|
||
7 2013 1 1 555 600 -5 913 854
|
||
8 2013 1 1 557 600 -3 709 723
|
||
9 2013 1 1 557 600 -3 838 846
|
||
10 2013 1 1 558 600 -2 753 745
|
||
# ℹ 336,766 more rows
|
||
# ℹ 11 more variables: arr_delay <dbl>, carrier <chr>, flight <int>,
|
||
# tailnum <chr>, origin <chr>, dest <chr>, air_time <dbl>, distance <dbl>,
|
||
# hour <dbl>, minute <dbl>, time_hour <dttm></code></pre>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
<section id="排序" class="slide level2">
|
||
<h2>排序</h2>
|
||
<div class="cell">
|
||
<div class="sourceCode cell-code" id="cb47"><pre class="sourceCode numberSource r number-lines code-with-copy"><code class="sourceCode r"><span id="cb47-1"><a></a>flights <span class="sc">|></span> </span>
|
||
<span id="cb47-2"><a></a> <span class="fu">arrange</span>(year, month, day, dep_time)</span></code><button title="复制到剪贴板" class="code-copy-button"><i class="bi"></i></button></pre></div>
|
||
<div class="cell-output cell-output-stdout">
|
||
<pre><code># A tibble: 336,776 × 19
|
||
year month day dep_time sched_dep_time dep_delay arr_time sched_arr_time
|
||
<int> <int> <int> <int> <int> <dbl> <int> <int>
|
||
1 2013 1 1 517 515 2 830 819
|
||
2 2013 1 1 533 529 4 850 830
|
||
3 2013 1 1 542 540 2 923 850
|
||
4 2013 1 1 544 545 -1 1004 1022
|
||
5 2013 1 1 554 600 -6 812 837
|
||
6 2013 1 1 554 558 -4 740 728
|
||
7 2013 1 1 555 600 -5 913 854
|
||
8 2013 1 1 557 600 -3 709 723
|
||
9 2013 1 1 557 600 -3 838 846
|
||
10 2013 1 1 558 600 -2 753 745
|
||
# ℹ 336,766 more rows
|
||
# ℹ 11 more variables: arr_delay <dbl>, carrier <chr>, flight <int>,
|
||
# tailnum <chr>, origin <chr>, dest <chr>, air_time <dbl>, distance <dbl>,
|
||
# hour <dbl>, minute <dbl>, time_hour <dttm></code></pre>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
<section id="排序-1" class="slide level2">
|
||
<h2>排序</h2>
|
||
<div class="cell">
|
||
<div class="sourceCode cell-code" id="cb49"><pre class="sourceCode numberSource r number-lines code-with-copy"><code class="sourceCode r"><span id="cb49-1"><a></a>flights <span class="sc">|></span> </span>
|
||
<span id="cb49-2"><a></a> <span class="fu">arrange</span>(<span class="fu">desc</span>(dep_delay))</span></code><button title="复制到剪贴板" class="code-copy-button"><i class="bi"></i></button></pre></div>
|
||
<div class="cell-output cell-output-stdout">
|
||
<pre><code># A tibble: 336,776 × 19
|
||
year month day dep_time sched_dep_time dep_delay arr_time sched_arr_time
|
||
<int> <int> <int> <int> <int> <dbl> <int> <int>
|
||
1 2013 1 9 641 900 1301 1242 1530
|
||
2 2013 6 15 1432 1935 1137 1607 2120
|
||
3 2013 1 10 1121 1635 1126 1239 1810
|
||
4 2013 9 20 1139 1845 1014 1457 2210
|
||
5 2013 7 22 845 1600 1005 1044 1815
|
||
6 2013 4 10 1100 1900 960 1342 2211
|
||
7 2013 3 17 2321 810 911 135 1020
|
||
8 2013 6 27 959 1900 899 1236 2226
|
||
9 2013 7 22 2257 759 898 121 1026
|
||
10 2013 12 5 756 1700 896 1058 2020
|
||
# ℹ 336,766 more rows
|
||
# ℹ 11 more variables: arr_delay <dbl>, carrier <chr>, flight <int>,
|
||
# tailnum <chr>, origin <chr>, dest <chr>, air_time <dbl>, distance <dbl>,
|
||
# hour <dbl>, minute <dbl>, time_hour <dttm></code></pre>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
<section id="slice" class="slide level2">
|
||
<h2>slice</h2>
|
||
<div class="cell">
|
||
<div class="sourceCode cell-code" id="cb51"><pre class="sourceCode numberSource r number-lines code-with-copy"><code class="sourceCode r"><span id="cb51-1"><a></a>flights <span class="sc">|></span> <span class="fu">head</span>(<span class="at">n =</span> <span class="dv">5</span>)</span></code><button title="复制到剪贴板" class="code-copy-button"><i class="bi"></i></button></pre></div>
|
||
<div class="cell-output cell-output-stdout">
|
||
<pre><code># A tibble: 5 × 19
|
||
year month day dep_time sched_dep_time dep_delay arr_time sched_arr_time
|
||
<int> <int> <int> <int> <int> <dbl> <int> <int>
|
||
1 2013 1 1 517 515 2 830 819
|
||
2 2013 1 1 533 529 4 850 830
|
||
3 2013 1 1 542 540 2 923 850
|
||
4 2013 1 1 544 545 -1 1004 1022
|
||
5 2013 1 1 554 600 -6 812 837
|
||
# ℹ 11 more variables: arr_delay <dbl>, carrier <chr>, flight <int>,
|
||
# tailnum <chr>, origin <chr>, dest <chr>, air_time <dbl>, distance <dbl>,
|
||
# hour <dbl>, minute <dbl>, time_hour <dttm></code></pre>
|
||
</div>
|
||
<div class="sourceCode cell-code" id="cb53"><pre class="sourceCode numberSource r number-lines code-with-copy"><code class="sourceCode r"><span id="cb53-1"><a></a>flights <span class="sc">|></span> <span class="fu">slice</span>(<span class="dv">1</span><span class="sc">:</span><span class="dv">5</span>)</span></code><button title="复制到剪贴板" class="code-copy-button"><i class="bi"></i></button></pre></div>
|
||
<div class="cell-output cell-output-stdout">
|
||
<pre><code># A tibble: 5 × 19
|
||
year month day dep_time sched_dep_time dep_delay arr_time sched_arr_time
|
||
<int> <int> <int> <int> <int> <dbl> <int> <int>
|
||
1 2013 1 1 517 515 2 830 819
|
||
2 2013 1 1 533 529 4 850 830
|
||
3 2013 1 1 542 540 2 923 850
|
||
4 2013 1 1 544 545 -1 1004 1022
|
||
5 2013 1 1 554 600 -6 812 837
|
||
# ℹ 11 more variables: arr_delay <dbl>, carrier <chr>, flight <int>,
|
||
# tailnum <chr>, origin <chr>, dest <chr>, air_time <dbl>, distance <dbl>,
|
||
# hour <dbl>, minute <dbl>, time_hour <dttm></code></pre>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
<section id="slice-1" class="slide level2">
|
||
<h2>slice</h2>
|
||
<div class="cell">
|
||
<div class="sourceCode cell-code" id="cb55"><pre class="sourceCode numberSource r number-lines code-with-copy"><code class="sourceCode r"><span id="cb55-1"><a></a>flights <span class="sc">|></span> </span>
|
||
<span id="cb55-2"><a></a> <span class="fu">slice_max</span>(dep_delay, <span class="at">n =</span> <span class="dv">5</span>)</span></code><button title="复制到剪贴板" class="code-copy-button"><i class="bi"></i></button></pre></div>
|
||
<div class="cell-output cell-output-stdout">
|
||
<pre><code># A tibble: 5 × 19
|
||
year month day dep_time sched_dep_time dep_delay arr_time sched_arr_time
|
||
<int> <int> <int> <int> <int> <dbl> <int> <int>
|
||
1 2013 1 9 641 900 1301 1242 1530
|
||
2 2013 6 15 1432 1935 1137 1607 2120
|
||
3 2013 1 10 1121 1635 1126 1239 1810
|
||
4 2013 9 20 1139 1845 1014 1457 2210
|
||
5 2013 7 22 845 1600 1005 1044 1815
|
||
# ℹ 11 more variables: arr_delay <dbl>, carrier <chr>, flight <int>,
|
||
# tailnum <chr>, origin <chr>, dest <chr>, air_time <dbl>, distance <dbl>,
|
||
# hour <dbl>, minute <dbl>, time_hour <dttm></code></pre>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
<section id="slice-2" class="slide level2">
|
||
<h2>slice</h2>
|
||
<div class="cell">
|
||
<div class="sourceCode cell-code" id="cb57"><pre class="sourceCode numberSource r number-lines code-with-copy"><code class="sourceCode r"><span id="cb57-1"><a></a>flights <span class="sc">|></span> </span>
|
||
<span id="cb57-2"><a></a> <span class="fu">slice_min</span>(dep_delay, <span class="at">prop =</span> <span class="fl">0.005</span>)</span></code><button title="复制到剪贴板" class="code-copy-button"><i class="bi"></i></button></pre></div>
|
||
<div class="cell-output cell-output-stdout">
|
||
<pre><code># A tibble: 2,257 × 19
|
||
year month day dep_time sched_dep_time dep_delay arr_time sched_arr_time
|
||
<int> <int> <int> <int> <int> <dbl> <int> <int>
|
||
1 2013 12 7 2040 2123 -43 40 2352
|
||
2 2013 2 3 2022 2055 -33 2240 2338
|
||
3 2013 11 10 1408 1440 -32 1549 1559
|
||
4 2013 1 11 1900 1930 -30 2233 2243
|
||
5 2013 1 29 1703 1730 -27 1947 1957
|
||
6 2013 8 9 729 755 -26 1002 955
|
||
7 2013 10 23 1907 1932 -25 2143 2143
|
||
8 2013 3 30 2030 2055 -25 2213 2250
|
||
9 2013 3 2 1431 1455 -24 1601 1631
|
||
10 2013 5 5 934 958 -24 1225 1309
|
||
# ℹ 2,247 more rows
|
||
# ℹ 11 more variables: arr_delay <dbl>, carrier <chr>, flight <int>,
|
||
# tailnum <chr>, origin <chr>, dest <chr>, air_time <dbl>, distance <dbl>,
|
||
# hour <dbl>, minute <dbl>, time_hour <dttm></code></pre>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
<section id="排序练习" class="slide level2">
|
||
<h2>排序练习</h2>
|
||
<p>根据<code>origin</code>、<code>dest</code>、<code>air_time</code>倒序排序。</p>
|
||
<div class="cell">
|
||
<div class="cell-output cell-output-stdout">
|
||
<pre><code># A tibble: 336,776 × 19
|
||
origin dest air_time year month day dep_time sched_dep_time dep_delay
|
||
<chr> <chr> <dbl> <int> <int> <int> <int> <int> <dbl>
|
||
1 EWR ALB 50 2013 5 5 1950 2000 -10
|
||
2 EWR ALB 45 2013 1 13 1721 1619 62
|
||
3 EWR ALB 43 2013 1 20 1623 1619 4
|
||
4 EWR ALB 42 2013 4 1 1439 1340 59
|
||
5 EWR ALB 41 2013 12 4 1316 1310 6
|
||
6 EWR ALB 41 2013 2 1 2034 2000 34
|
||
7 EWR ALB 41 2013 5 7 1956 2000 -4
|
||
8 EWR ALB 38 2013 1 18 1824 1619 125
|
||
9 EWR ALB 38 2013 1 28 1636 1619 17
|
||
10 EWR ALB 38 2013 11 10 2149 2159 -10
|
||
# ℹ 336,766 more rows
|
||
# ℹ 10 more variables: arr_time <int>, sched_arr_time <int>, arr_delay <dbl>,
|
||
# carrier <chr>, flight <int>, tailnum <chr>, distance <dbl>, hour <dbl>,
|
||
# minute <dbl>, time_hour <dttm></code></pre>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
<section id="去重" class="slide level2">
|
||
<h2>去重</h2>
|
||
<div class="cell">
|
||
<div class="sourceCode cell-code" id="cb60"><pre class="sourceCode numberSource r number-lines code-with-copy"><code class="sourceCode r"><span id="cb60-1"><a></a><span class="co"># Remove duplicate rows, if any</span></span>
|
||
<span id="cb60-2"><a></a>flights <span class="sc">|></span> </span>
|
||
<span id="cb60-3"><a></a> <span class="fu">distinct</span>()</span></code><button title="复制到剪贴板" class="code-copy-button"><i class="bi"></i></button></pre></div>
|
||
<div class="cell-output cell-output-stdout">
|
||
<pre><code># A tibble: 336,776 × 19
|
||
year month day dep_time sched_dep_time dep_delay arr_time sched_arr_time
|
||
<int> <int> <int> <int> <int> <dbl> <int> <int>
|
||
1 2013 1 1 517 515 2 830 819
|
||
2 2013 1 1 533 529 4 850 830
|
||
3 2013 1 1 542 540 2 923 850
|
||
4 2013 1 1 544 545 -1 1004 1022
|
||
5 2013 1 1 554 600 -6 812 837
|
||
6 2013 1 1 554 558 -4 740 728
|
||
7 2013 1 1 555 600 -5 913 854
|
||
8 2013 1 1 557 600 -3 709 723
|
||
9 2013 1 1 557 600 -3 838 846
|
||
10 2013 1 1 558 600 -2 753 745
|
||
# ℹ 336,766 more rows
|
||
# ℹ 11 more variables: arr_delay <dbl>, carrier <chr>, flight <int>,
|
||
# tailnum <chr>, origin <chr>, dest <chr>, air_time <dbl>, distance <dbl>,
|
||
# hour <dbl>, minute <dbl>, time_hour <dttm></code></pre>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
<section id="去重-1" class="slide level2">
|
||
<h2>去重</h2>
|
||
<div class="cell">
|
||
<div class="sourceCode cell-code" id="cb62"><pre class="sourceCode numberSource r number-lines code-with-copy"><code class="sourceCode r"><span id="cb62-1"><a></a><span class="co"># Find all unique origin and destination pairs</span></span>
|
||
<span id="cb62-2"><a></a>flights <span class="sc">|></span> </span>
|
||
<span id="cb62-3"><a></a> <span class="fu">distinct</span>(origin, dest)</span></code><button title="复制到剪贴板" class="code-copy-button"><i class="bi"></i></button></pre></div>
|
||
<div class="cell-output cell-output-stdout">
|
||
<pre><code># A tibble: 224 × 2
|
||
origin dest
|
||
<chr> <chr>
|
||
1 EWR IAH
|
||
2 LGA IAH
|
||
3 JFK MIA
|
||
4 JFK BQN
|
||
5 LGA ATL
|
||
6 EWR ORD
|
||
7 EWR FLL
|
||
8 LGA IAD
|
||
9 JFK MCO
|
||
10 LGA ORD
|
||
# ℹ 214 more rows</code></pre>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
<section id="去重-2" class="slide level2">
|
||
<h2>去重</h2>
|
||
<div class="cell">
|
||
<div class="sourceCode cell-code" id="cb64"><pre class="sourceCode numberSource r number-lines code-with-copy"><code class="sourceCode r"><span id="cb64-1"><a></a>flights <span class="sc">|></span> </span>
|
||
<span id="cb64-2"><a></a> <span class="fu">distinct</span>(origin, dest, <span class="at">.keep_all =</span> <span class="cn">TRUE</span>)</span></code><button title="复制到剪贴板" class="code-copy-button"><i class="bi"></i></button></pre></div>
|
||
<div class="cell-output cell-output-stdout">
|
||
<pre><code># A tibble: 224 × 19
|
||
year month day dep_time sched_dep_time dep_delay arr_time sched_arr_time
|
||
<int> <int> <int> <int> <int> <dbl> <int> <int>
|
||
1 2013 1 1 517 515 2 830 819
|
||
2 2013 1 1 533 529 4 850 830
|
||
3 2013 1 1 542 540 2 923 850
|
||
4 2013 1 1 544 545 -1 1004 1022
|
||
5 2013 1 1 554 600 -6 812 837
|
||
6 2013 1 1 554 558 -4 740 728
|
||
7 2013 1 1 555 600 -5 913 854
|
||
8 2013 1 1 557 600 -3 709 723
|
||
9 2013 1 1 557 600 -3 838 846
|
||
10 2013 1 1 558 600 -2 753 745
|
||
# ℹ 214 more rows
|
||
# ℹ 11 more variables: arr_delay <dbl>, carrier <chr>, flight <int>,
|
||
# tailnum <chr>, origin <chr>, dest <chr>, air_time <dbl>, distance <dbl>,
|
||
# hour <dbl>, minute <dbl>, time_hour <dttm></code></pre>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
<section id="欢迎讨论" class="slide level2 center">
|
||
<h2>欢迎讨论!</h2>
|
||
<span class="r-fit-text"><svg viewbox="0 0 576 512" style="height:1em;position:relative;display:inline-block;top:.1em;" xmlns="http://www.w3.org/2000/svg"> <path d="M280.37 148.26L96 300.11V464a16 16 0 0 0 16 16l112.06-.29a16 16 0 0 0 15.92-16V368a16 16 0 0 1 16-16h64a16 16 0 0 1 16 16v95.64a16 16 0 0 0 16 16.05L464 480a16 16 0 0 0 16-16V300L295.67 148.26a12.19 12.19 0 0 0-15.3 0zM571.6 251.47L488 182.56V44.05a12 12 0 0 0-12-12h-56a12 12 0 0 0-12 12v72.61L318.47 43a48 48 0 0 0-61 0L4.34 251.47a12 12 0 0 0-1.6 16.9l25.5 31A12 12 0 0 0 45.15 301l235.22-193.74a12.19 12.19 0 0 1 15.3 0L530.9 301a12 12 0 0 0 16.9-1.6l25.5-31a12 12 0 0 0-1.7-16.93z"></path> </svg><a href="https://drwater.rcees.ac.cn">苏命|https://drwater.rcees.ac.cn</a>; <svg viewbox="0 0 576 512" style="height:1em;position:relative;display:inline-block;top:.1em;" xmlns="http://www.w3.org/2000/svg"> <path d="M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 400H48V80h480v352zM208 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2zM360 320h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8z"></path> </svg><a href="https://drwater.rcees.ac.cn/bcard">https://drwater.rcees.ac.cn/bcard</a>; <svg viewbox="0 0 512 512" style="height:1em;position:relative;display:inline-block;top:.1em;" xmlns="http://www.w3.org/2000/svg"> <path d="M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z"></path> </svg><a href="https://drwater.rcees.ac.cn/course/public/RWEP/@PUB/SD/">Slides</a></span><br><br>
|
||
<div class="columns">
|
||
<div class="column" style="width:30%;">
|
||
<span class="r-fit-text"><svg viewbox="0 0 512 512" style="height:1em;position:relative;display:inline-block;top:.1em;" xmlns="http://www.w3.org/2000/svg"> <path d="M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm0 48v40.805c-22.422 18.259-58.168 46.651-134.587 106.49-16.841 13.247-50.201 45.072-73.413 44.701-23.208.375-56.579-31.459-73.413-44.701C106.18 199.465 70.425 171.067 48 152.805V112h416zM48 400V214.398c22.914 18.251 55.409 43.862 104.938 82.646 21.857 17.205 60.134 55.186 103.062 54.955 42.717.231 80.509-37.199 103.053-54.947 49.528-38.783 82.032-64.401 104.947-82.653V400H48z"></path> </svg><a href="mailto:mingsu@rcees.ac.cn">mingsu@rcees.ac.cn</a>;</span><br>
|
||
</div></div>
|
||
|
||
|
||
</section>
|
||
</div>
|
||
<div class="quarto-auto-generated-content" style="display: none;">
|
||
<p><img src="./_extensions/inst/img/ucaslogo.png" class="slide-logo"></p>
|
||
<div class="footer footer-default">
|
||
|
||
</div>
|
||
</div></div>
|
||
|
||
<script>window.backupDefine = window.define; window.define = undefined;</script>
|
||
<script src="../../site_libs/revealjs/dist/reveal.js"></script>
|
||
<!-- reveal.js plugins -->
|
||
<script src="../../site_libs/revealjs/plugin/quarto-line-highlight/line-highlight.js"></script>
|
||
<script src="../../site_libs/revealjs/plugin/pdf-export/pdfexport.js"></script>
|
||
<script src="../../site_libs/revealjs/plugin/reveal-menu/menu.js"></script>
|
||
<script src="../../site_libs/revealjs/plugin/reveal-menu/quarto-menu.js"></script>
|
||
<script src="../../site_libs/revealjs/plugin/reveal-chalkboard/plugin.js"></script>
|
||
<script src="../../site_libs/revealjs/plugin/reveal-pointer/pointer.js"></script>
|
||
<script src="../../site_libs/revealjs/plugin/quarto-support/support.js"></script>
|
||
|
||
|
||
<script src="../../site_libs/revealjs/plugin/notes/notes.js"></script>
|
||
<script src="../../site_libs/revealjs/plugin/search/search.js"></script>
|
||
<script src="../../site_libs/revealjs/plugin/zoom/zoom.js"></script>
|
||
<script src="../../site_libs/revealjs/plugin/math/math.js"></script>
|
||
<script>window.define = window.backupDefine; window.backupDefine = undefined;</script>
|
||
|
||
<script>
|
||
|
||
// Full list of configuration options available at:
|
||
// https://revealjs.com/config/
|
||
Reveal.initialize({
|
||
'controlsAuto': true,
|
||
'previewLinksAuto': true,
|
||
'pdfSeparateFragments': false,
|
||
'autoAnimateEasing': "ease",
|
||
'autoAnimateDuration': 1,
|
||
'autoAnimateUnmatched': true,
|
||
'jumpToSlide': true,
|
||
'menu': {"side":"left","useTextContentForMissingTitles":true,"markers":false,"loadIcons":false,"custom":[{"title":"Tools","icon":"<i class=\"fas fa-gear\"></i>","content":"<ul class=\"slide-menu-items\">\n<li class=\"slide-tool-item active\" data-item=\"0\"><a href=\"#\" onclick=\"RevealMenuToolHandlers.fullscreen(event)\"><kbd>f</kbd> Fullscreen</a></li>\n<li class=\"slide-tool-item\" data-item=\"1\"><a href=\"#\" onclick=\"RevealMenuToolHandlers.speakerMode(event)\"><kbd>s</kbd> Speaker View</a></li>\n<li class=\"slide-tool-item\" data-item=\"2\"><a href=\"#\" onclick=\"RevealMenuToolHandlers.overview(event)\"><kbd>o</kbd> Slide Overview</a></li>\n<li class=\"slide-tool-item\" data-item=\"3\"><a href=\"#\" onclick=\"RevealMenuToolHandlers.togglePdfExport(event)\"><kbd>e</kbd> PDF Export Mode</a></li>\n<li class=\"slide-tool-item\" data-item=\"4\"><a href=\"#\" onclick=\"RevealMenuToolHandlers.toggleScrollView(event)\"><kbd>r</kbd> Scroll View Mode</a></li>\n<li class=\"slide-tool-item\" data-item=\"5\"><a href=\"#\" onclick=\"RevealMenuToolHandlers.toggleChalkboard(event)\"><kbd>b</kbd> Toggle Chalkboard</a></li>\n<li class=\"slide-tool-item\" data-item=\"6\"><a href=\"#\" onclick=\"RevealMenuToolHandlers.toggleNotesCanvas(event)\"><kbd>c</kbd> Toggle Notes Canvas</a></li>\n<li class=\"slide-tool-item\" data-item=\"7\"><a href=\"#\" onclick=\"RevealMenuToolHandlers.downloadDrawings(event)\"><kbd>d</kbd> Download Drawings</a></li>\n<li class=\"slide-tool-item\" data-item=\"8\"><a href=\"#\" onclick=\"RevealMenuToolHandlers.keyboardHelp(event)\"><kbd>?</kbd> Keyboard Help</a></li>\n</ul>"}],"openButton":true},
|
||
'chalkboard': {"buttons":true},
|
||
'pointer': {"key":"p","color":"#32cd32","pointerSize":18,"alwaysVisible":false},
|
||
'smaller': false,
|
||
|
||
// Display controls in the bottom right corner
|
||
controls: false,
|
||
|
||
// Help the user learn the controls by providing hints, for example by
|
||
// bouncing the down arrow when they first encounter a vertical slide
|
||
controlsTutorial: false,
|
||
|
||
// Determines where controls appear, "edges" or "bottom-right"
|
||
controlsLayout: 'edges',
|
||
|
||
// Visibility rule for backwards navigation arrows; "faded", "hidden"
|
||
// or "visible"
|
||
controlsBackArrows: 'faded',
|
||
|
||
// Display a presentation progress bar
|
||
progress: true,
|
||
|
||
// Display the page number of the current slide
|
||
slideNumber: 'c/t',
|
||
|
||
// 'all', 'print', or 'speaker'
|
||
showSlideNumber: 'all',
|
||
|
||
// Add the current slide number to the URL hash so that reloading the
|
||
// page/copying the URL will return you to the same slide
|
||
hash: true,
|
||
|
||
// Start with 1 for the hash rather than 0
|
||
hashOneBasedIndex: false,
|
||
|
||
// Flags if we should monitor the hash and change slides accordingly
|
||
respondToHashChanges: true,
|
||
|
||
// Push each slide change to the browser history
|
||
history: true,
|
||
|
||
// Enable keyboard shortcuts for navigation
|
||
keyboard: true,
|
||
|
||
// Enable the slide overview mode
|
||
overview: true,
|
||
|
||
// Disables the default reveal.js slide layout (scaling and centering)
|
||
// so that you can use custom CSS layout
|
||
disableLayout: false,
|
||
|
||
// Vertical centering of slides
|
||
center: false,
|
||
|
||
// Enables touch navigation on devices with touch input
|
||
touch: true,
|
||
|
||
// Loop the presentation
|
||
loop: false,
|
||
|
||
// Change the presentation direction to be RTL
|
||
rtl: false,
|
||
|
||
// see https://revealjs.com/vertical-slides/#navigation-mode
|
||
navigationMode: 'linear',
|
||
|
||
// Randomizes the order of slides each time the presentation loads
|
||
shuffle: false,
|
||
|
||
// Turns fragments on and off globally
|
||
fragments: true,
|
||
|
||
// Flags whether to include the current fragment in the URL,
|
||
// so that reloading brings you to the same fragment position
|
||
fragmentInURL: false,
|
||
|
||
// Flags if the presentation is running in an embedded mode,
|
||
// i.e. contained within a limited portion of the screen
|
||
embedded: false,
|
||
|
||
// Flags if we should show a help overlay when the questionmark
|
||
// key is pressed
|
||
help: true,
|
||
|
||
// Flags if it should be possible to pause the presentation (blackout)
|
||
pause: true,
|
||
|
||
// Flags if speaker notes should be visible to all viewers
|
||
showNotes: false,
|
||
|
||
// Global override for autoplaying embedded media (null/true/false)
|
||
autoPlayMedia: null,
|
||
|
||
// Global override for preloading lazy-loaded iframes (null/true/false)
|
||
preloadIframes: null,
|
||
|
||
// Number of milliseconds between automatically proceeding to the
|
||
// next slide, disabled when set to 0, this value can be overwritten
|
||
// by using a data-autoslide attribute on your slides
|
||
autoSlide: 0,
|
||
|
||
// Stop auto-sliding after user input
|
||
autoSlideStoppable: true,
|
||
|
||
// Use this method for navigation when auto-sliding
|
||
autoSlideMethod: null,
|
||
|
||
// Specify the average time in seconds that you think you will spend
|
||
// presenting each slide. This is used to show a pacing timer in the
|
||
// speaker view
|
||
defaultTiming: null,
|
||
|
||
// Enable slide navigation via mouse wheel
|
||
mouseWheel: false,
|
||
|
||
// The display mode that will be used to show slides
|
||
display: 'block',
|
||
|
||
// Hide cursor if inactive
|
||
hideInactiveCursor: true,
|
||
|
||
// Time before the cursor is hidden (in ms)
|
||
hideCursorTime: 5000,
|
||
|
||
// Opens links in an iframe preview overlay
|
||
previewLinks: false,
|
||
|
||
// Transition style (none/fade/slide/convex/concave/zoom)
|
||
transition: 'none',
|
||
|
||
// Transition speed (default/fast/slow)
|
||
transitionSpeed: 'default',
|
||
|
||
// Transition style for full page slide backgrounds
|
||
// (none/fade/slide/convex/concave/zoom)
|
||
backgroundTransition: 'none',
|
||
|
||
// Number of slides away from the current that are visible
|
||
viewDistance: 3,
|
||
|
||
// Number of slides away from the current that are visible on mobile
|
||
// devices. It is advisable to set this to a lower number than
|
||
// viewDistance in order to save resources.
|
||
mobileViewDistance: 2,
|
||
|
||
// The "normal" size of the presentation, aspect ratio will be preserved
|
||
// when the presentation is scaled to fit different resolutions. Can be
|
||
// specified using percentage units.
|
||
width: 1050,
|
||
|
||
height: 700,
|
||
|
||
// Factor of the display size that should remain empty around the content
|
||
margin: 0.1,
|
||
|
||
math: {
|
||
mathjax: 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.9/MathJax.js',
|
||
config: 'TeX-AMS_HTML-full',
|
||
tex2jax: {
|
||
inlineMath: [['\\(','\\)']],
|
||
displayMath: [['\\[','\\]']],
|
||
balanceBraces: true,
|
||
processEscapes: false,
|
||
processRefs: true,
|
||
processEnvironments: true,
|
||
preview: 'TeX',
|
||
skipTags: ['script','noscript','style','textarea','pre','code'],
|
||
ignoreClass: 'tex2jax_ignore',
|
||
processClass: 'tex2jax_process'
|
||
},
|
||
},
|
||
|
||
// reveal.js plugins
|
||
plugins: [QuartoLineHighlight, PdfExport, RevealMenu, RevealChalkboard, RevealPointer, QuartoSupport,
|
||
|
||
RevealMath,
|
||
RevealNotes,
|
||
RevealSearch,
|
||
RevealZoom
|
||
]
|
||
});
|
||
</script>
|
||
|
||
<script>
|
||
// htmlwidgets need to know to resize themselves when slides are shown/hidden.
|
||
// Fire the "slideenter" event (handled by htmlwidgets.js) when the current
|
||
// slide changes (different for each slide format).
|
||
(function () {
|
||
// dispatch for htmlwidgets
|
||
function fireSlideEnter() {
|
||
const event = window.document.createEvent("Event");
|
||
event.initEvent("slideenter", true, true);
|
||
window.document.dispatchEvent(event);
|
||
}
|
||
|
||
function fireSlideChanged(previousSlide, currentSlide) {
|
||
fireSlideEnter();
|
||
|
||
// dispatch for shiny
|
||
if (window.jQuery) {
|
||
if (previousSlide) {
|
||
window.jQuery(previousSlide).trigger("hidden");
|
||
}
|
||
if (currentSlide) {
|
||
window.jQuery(currentSlide).trigger("shown");
|
||
}
|
||
}
|
||
}
|
||
|
||
// hookup for slidy
|
||
if (window.w3c_slidy) {
|
||
window.w3c_slidy.add_observer(function (slide_num) {
|
||
// slide_num starts at position 1
|
||
fireSlideChanged(null, w3c_slidy.slides[slide_num - 1]);
|
||
});
|
||
}
|
||
|
||
})();
|
||
</script>
|
||
|
||
<script id="quarto-html-after-body" type="application/javascript">
|
||
window.document.addEventListener("DOMContentLoaded", function (event) {
|
||
const toggleBodyColorMode = (bsSheetEl) => {
|
||
const mode = bsSheetEl.getAttribute("data-mode");
|
||
const bodyEl = window.document.querySelector("body");
|
||
if (mode === "dark") {
|
||
bodyEl.classList.add("quarto-dark");
|
||
bodyEl.classList.remove("quarto-light");
|
||
} else {
|
||
bodyEl.classList.add("quarto-light");
|
||
bodyEl.classList.remove("quarto-dark");
|
||
}
|
||
}
|
||
const toggleBodyColorPrimary = () => {
|
||
const bsSheetEl = window.document.querySelector("link#quarto-bootstrap");
|
||
if (bsSheetEl) {
|
||
toggleBodyColorMode(bsSheetEl);
|
||
}
|
||
}
|
||
toggleBodyColorPrimary();
|
||
const tabsets = window.document.querySelectorAll(".panel-tabset-tabby")
|
||
tabsets.forEach(function(tabset) {
|
||
const tabby = new Tabby('#' + tabset.id);
|
||
});
|
||
const isCodeAnnotation = (el) => {
|
||
for (const clz of el.classList) {
|
||
if (clz.startsWith('code-annotation-')) {
|
||
return true;
|
||
}
|
||
}
|
||
return false;
|
||
}
|
||
const onCopySuccess = function(e) {
|
||
// button target
|
||
const button = e.trigger;
|
||
// don't keep focus
|
||
button.blur();
|
||
// flash "checked"
|
||
button.classList.add('code-copy-button-checked');
|
||
var currentTitle = button.getAttribute("title");
|
||
button.setAttribute("title", "已复制");
|
||
let tooltip;
|
||
if (window.bootstrap) {
|
||
button.setAttribute("data-bs-toggle", "tooltip");
|
||
button.setAttribute("data-bs-placement", "left");
|
||
button.setAttribute("data-bs-title", "已复制");
|
||
tooltip = new bootstrap.Tooltip(button,
|
||
{ trigger: "manual",
|
||
customClass: "code-copy-button-tooltip",
|
||
offset: [0, -8]});
|
||
tooltip.show();
|
||
}
|
||
setTimeout(function() {
|
||
if (tooltip) {
|
||
tooltip.hide();
|
||
button.removeAttribute("data-bs-title");
|
||
button.removeAttribute("data-bs-toggle");
|
||
button.removeAttribute("data-bs-placement");
|
||
}
|
||
button.setAttribute("title", currentTitle);
|
||
button.classList.remove('code-copy-button-checked');
|
||
}, 1000);
|
||
// clear code selection
|
||
e.clearSelection();
|
||
}
|
||
const getTextToCopy = function(trigger) {
|
||
const codeEl = trigger.previousElementSibling.cloneNode(true);
|
||
for (const childEl of codeEl.children) {
|
||
if (isCodeAnnotation(childEl)) {
|
||
childEl.remove();
|
||
}
|
||
}
|
||
return codeEl.innerText;
|
||
}
|
||
const clipboard = new window.ClipboardJS('.code-copy-button:not([data-in-quarto-modal])', {
|
||
text: getTextToCopy
|
||
});
|
||
clipboard.on('success', onCopySuccess);
|
||
if (window.document.getElementById('quarto-embedded-source-code-modal')) {
|
||
const clipboardModal = new window.ClipboardJS('.code-copy-button[data-in-quarto-modal]', {
|
||
text: getTextToCopy,
|
||
container: window.document.getElementById('quarto-embedded-source-code-modal')
|
||
});
|
||
clipboardModal.on('success', onCopySuccess);
|
||
}
|
||
var localhostRegex = new RegExp(/^(?:http|https):\/\/localhost\:?[0-9]*\//);
|
||
var mailtoRegex = new RegExp(/^mailto:/);
|
||
var filterRegex = new RegExp("https:\/\/drc\.drwater\.net\/course\/public\/RWEP\/PUB");
|
||
var isInternal = (href) => {
|
||
return filterRegex.test(href) || localhostRegex.test(href) || mailtoRegex.test(href);
|
||
}
|
||
// Inspect non-navigation links and adorn them if external
|
||
var links = window.document.querySelectorAll('a[href]:not(.nav-link):not(.navbar-brand):not(.toc-action):not(.sidebar-link):not(.sidebar-item-toggle):not(.pagination-link):not(.no-external):not([aria-hidden]):not(.dropdown-item):not(.quarto-navigation-tool):not(.about-link)');
|
||
for (var i=0; i<links.length; i++) {
|
||
const link = links[i];
|
||
if (!isInternal(link.href)) {
|
||
// undo the damage that might have been done by quarto-nav.js in the case of
|
||
// links that we want to consider external
|
||
if (link.dataset.originalHref !== undefined) {
|
||
link.href = link.dataset.originalHref;
|
||
}
|
||
}
|
||
}
|
||
function tippyHover(el, contentFn, onTriggerFn, onUntriggerFn) {
|
||
const config = {
|
||
allowHTML: true,
|
||
maxWidth: 500,
|
||
delay: 100,
|
||
arrow: false,
|
||
appendTo: function(el) {
|
||
return el.closest('section.slide') || el.parentElement;
|
||
},
|
||
interactive: true,
|
||
interactiveBorder: 10,
|
||
theme: 'light-border',
|
||
placement: 'bottom-start',
|
||
};
|
||
if (contentFn) {
|
||
config.content = contentFn;
|
||
}
|
||
if (onTriggerFn) {
|
||
config.onTrigger = onTriggerFn;
|
||
}
|
||
if (onUntriggerFn) {
|
||
config.onUntrigger = onUntriggerFn;
|
||
}
|
||
config['offset'] = [0,0];
|
||
config['maxWidth'] = 700;
|
||
window.tippy(el, config);
|
||
}
|
||
const noterefs = window.document.querySelectorAll('a[role="doc-noteref"]');
|
||
for (var i=0; i<noterefs.length; i++) {
|
||
const ref = noterefs[i];
|
||
tippyHover(ref, function() {
|
||
// use id or data attribute instead here
|
||
let href = ref.getAttribute('data-footnote-href') || ref.getAttribute('href');
|
||
try { href = new URL(href).hash; } catch {}
|
||
const id = href.replace(/^#\/?/, "");
|
||
const note = window.document.getElementById(id);
|
||
if (note) {
|
||
return note.innerHTML;
|
||
} else {
|
||
return "";
|
||
}
|
||
});
|
||
}
|
||
const findCites = (el) => {
|
||
const parentEl = el.parentElement;
|
||
if (parentEl) {
|
||
const cites = parentEl.dataset.cites;
|
||
if (cites) {
|
||
return {
|
||
el,
|
||
cites: cites.split(' ')
|
||
};
|
||
} else {
|
||
return findCites(el.parentElement)
|
||
}
|
||
} else {
|
||
return undefined;
|
||
}
|
||
};
|
||
var bibliorefs = window.document.querySelectorAll('a[role="doc-biblioref"]');
|
||
for (var i=0; i<bibliorefs.length; i++) {
|
||
const ref = bibliorefs[i];
|
||
const citeInfo = findCites(ref);
|
||
if (citeInfo) {
|
||
tippyHover(citeInfo.el, function() {
|
||
var popup = window.document.createElement('div');
|
||
citeInfo.cites.forEach(function(cite) {
|
||
var citeDiv = window.document.createElement('div');
|
||
citeDiv.classList.add('hanging-indent');
|
||
citeDiv.classList.add('csl-entry');
|
||
var biblioDiv = window.document.getElementById('ref-' + cite);
|
||
if (biblioDiv) {
|
||
citeDiv.innerHTML = biblioDiv.innerHTML;
|
||
}
|
||
popup.appendChild(citeDiv);
|
||
});
|
||
return popup.innerHTML;
|
||
});
|
||
}
|
||
}
|
||
});
|
||
</script>
|
||
|
||
|
||
</body></html> |