-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathmd.html
851 lines (803 loc) · 60.5 KB
/
md.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
<!DOCTYPE html>
<html lang="" xml:lang="">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>第 4 章 文学式编程 | 数据工程讲义:经济学分册</title>
<meta name="description" content="适用于数据工程与数据科学课程的教材。" />
<meta name="generator" content="bookdown 0.30 and GitBook 2.6.7" />
<meta property="og:title" content="第 4 章 文学式编程 | 数据工程讲义:经济学分册" />
<meta property="og:type" content="book" />
<meta property="og:description" content="适用于数据工程与数据科学课程的教材。" />
<meta name="github-repo" content="yihui/bookdown-chinese" />
<meta name="twitter:card" content="summary" />
<meta name="twitter:title" content="第 4 章 文学式编程 | 数据工程讲义:经济学分册" />
<meta name="twitter:description" content="适用于数据工程与数据科学课程的教材。" />
<meta name="author" content="史冬波 续本达" />
<meta name="date" content="2023-09-18" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
<link rel="prev" href="basic.html"/>
<link rel="next" href="manipulate.html"/>
<script src="libs/jquery-3.6.0/jquery-3.6.0.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/fuse.min.js"></script>
<link href="libs/gitbook-2.6.7/css/style.css" rel="stylesheet" />
<link href="libs/gitbook-2.6.7/css/plugin-table.css" rel="stylesheet" />
<link href="libs/gitbook-2.6.7/css/plugin-bookdown.css" rel="stylesheet" />
<link href="libs/gitbook-2.6.7/css/plugin-highlight.css" rel="stylesheet" />
<link href="libs/gitbook-2.6.7/css/plugin-search.css" rel="stylesheet" />
<link href="libs/gitbook-2.6.7/css/plugin-fontsettings.css" rel="stylesheet" />
<link href="libs/gitbook-2.6.7/css/plugin-clipboard.css" rel="stylesheet" />
<link href="libs/anchor-sections-1.1.0/anchor-sections.css" rel="stylesheet" />
<link href="libs/anchor-sections-1.1.0/anchor-sections-hash.css" rel="stylesheet" />
<script src="libs/anchor-sections-1.1.0/anchor-sections.js"></script>
<script src="libs/htmlwidgets-1.6.2/htmlwidgets.js"></script>
<script src="libs/viz-1.8.2/viz.js"></script>
<link href="libs/DiagrammeR-styles-0.2/styles.css" rel="stylesheet" />
<script src="libs/grViz-binding-1.0.10/grViz.js"></script>
<style type="text/css">
pre > code.sourceCode { white-space: pre; position: relative; }
pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }
pre > code.sourceCode > span:empty { height: 1.2em; }
.sourceCode { overflow: visible; }
code.sourceCode > span { color: inherit; text-decoration: inherit; }
pre.sourceCode { margin: 0; }
@media screen {
div.sourceCode { overflow: auto; }
}
@media print {
pre > code.sourceCode { white-space: pre-wrap; }
pre > code.sourceCode > span { 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;
color: #aaaaaa;
}
pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; padding-left: 4px; }
div.sourceCode
{ }
@media screen {
pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
}
code span.al { color: #ff0000; font-weight: bold; } /* Alert */
code span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */
code span.at { color: #7d9029; } /* Attribute */
code span.bn { color: #40a070; } /* BaseN */
code span.bu { color: #008000; } /* BuiltIn */
code span.cf { color: #007020; font-weight: bold; } /* ControlFlow */
code span.ch { color: #4070a0; } /* Char */
code span.cn { color: #880000; } /* Constant */
code span.co { color: #60a0b0; font-style: italic; } /* Comment */
code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /* CommentVar */
code span.do { color: #ba2121; font-style: italic; } /* Documentation */
code span.dt { color: #902000; } /* DataType */
code span.dv { color: #40a070; } /* DecVal */
code span.er { color: #ff0000; font-weight: bold; } /* Error */
code span.ex { } /* Extension */
code span.fl { color: #40a070; } /* Float */
code span.fu { color: #06287e; } /* Function */
code span.im { color: #008000; font-weight: bold; } /* Import */
code span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Information */
code span.kw { color: #007020; font-weight: bold; } /* Keyword */
code span.op { color: #666666; } /* Operator */
code span.ot { color: #007020; } /* Other */
code span.pp { color: #bc7a00; } /* Preprocessor */
code span.sc { color: #4070a0; } /* SpecialChar */
code span.ss { color: #bb6688; } /* SpecialString */
code span.st { color: #4070a0; } /* String */
code span.va { color: #19177c; } /* Variable */
code span.vs { color: #4070a0; } /* VerbatimString */
code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */
</style>
<link rel="stylesheet" href="css/style.css" type="text/css" />
</head>
<body>
<div class="book without-animation with-summary font-size-2 font-family-1" data-basepath=".">
<div class="book-summary">
<nav role="navigation">
<ul class="summary">
<li><a href="./">数据工程讲义</a></li>
<li class="divider"></li>
<li class="chapter" data-level="" data-path="index.html"><a href="index.html"><i class="fa fa-check"></i>前言</a>
<ul>
<li class="chapter" data-level="" data-path="index.html"><a href="index.html#致谢"><i class="fa fa-check"></i>致谢</a></li>
</ul></li>
<li class="chapter" data-level="" data-path="author.html"><a href="author.html"><i class="fa fa-check"></i>作者简介</a></li>
<li class="chapter" data-level="1" data-path="intro.html"><a href="intro.html"><i class="fa fa-check"></i><b>1</b> 写在前面</a>
<ul>
<li class="chapter" data-level="1.1" data-path="intro.html"><a href="intro.html#为什么写本书"><i class="fa fa-check"></i><b>1.1</b> 为什么写本书</a></li>
<li class="chapter" data-level="1.2" data-path="intro.html"><a href="intro.html#如何使用本书"><i class="fa fa-check"></i><b>1.2</b> 如何使用本书</a></li>
</ul></li>
<li class="chapter" data-level="2" data-path="flow.html"><a href="flow.html"><i class="fa fa-check"></i><b>2</b> 数据工程:重塑经济学研究的流程</a>
<ul>
<li class="chapter" data-level="2.1" data-path="flow.html"><a href="flow.html#人工智能时代的社会科学研究机遇与挑战"><i class="fa fa-check"></i><b>2.1</b> 人工智能时代的社会科学研究:机遇与挑战</a>
<ul>
<li class="chapter" data-level="2.1.1" data-path="flow.html"><a href="flow.html#社会科学的三圈分类"><i class="fa fa-check"></i><b>2.1.1</b> 社会科学的三圈分类</a></li>
<li class="chapter" data-level="2.1.2" data-path="flow.html"><a href="flow.html#ai智能发展的三要素"><i class="fa fa-check"></i><b>2.1.2</b> AI智能发展的三要素</a></li>
<li class="chapter" data-level="2.1.3" data-path="flow.html"><a href="flow.html#ai对社会科学研究的冲击"><i class="fa fa-check"></i><b>2.1.3</b> AI对社会科学研究的冲击</a></li>
<li class="chapter" data-level="2.1.4" data-path="flow.html"><a href="flow.html#ai为社会科学研究创造的机遇"><i class="fa fa-check"></i><b>2.1.4</b> AI为社会科学研究创造的机遇</a></li>
</ul></li>
<li class="chapter" data-level="2.2" data-path="flow.html"><a href="flow.html#数据工程与数据科学"><i class="fa fa-check"></i><b>2.2</b> 数据工程与数据科学</a>
<ul>
<li class="chapter" data-level="2.2.1" data-path="flow.html"><a href="flow.html#数据工程的灵魂数据流"><i class="fa fa-check"></i><b>2.2.1</b> 数据工程的灵魂:数据流</a></li>
<li class="chapter" data-level="2.2.2" data-path="flow.html"><a href="flow.html#数据工程的钥匙数据结构"><i class="fa fa-check"></i><b>2.2.2</b> 数据工程的钥匙:数据结构</a></li>
<li class="chapter" data-level="2.2.3" data-path="flow.html"><a href="flow.html#数据工程师的工具箱"><i class="fa fa-check"></i><b>2.2.3</b> 数据工程师的工具箱</a></li>
</ul></li>
<li class="chapter" data-level="2.3" data-path="flow.html"><a href="flow.html#数据工程的四个指导原则"><i class="fa fa-check"></i><b>2.3</b> 数据工程的四个指导原则</a>
<ul>
<li class="chapter" data-level="2.3.1" data-path="flow.html"><a href="flow.html#可复现性原则"><i class="fa fa-check"></i><b>2.3.1</b> 可复现性原则</a></li>
<li class="chapter" data-level="2.3.2" data-path="flow.html"><a href="flow.html#模块化与正交分解原则"><i class="fa fa-check"></i><b>2.3.2</b> 模块化与正交分解原则</a></li>
<li class="chapter" data-level="2.3.3" data-path="flow.html"><a href="flow.html#最佳工具原则"><i class="fa fa-check"></i><b>2.3.3</b> 最佳工具原则</a></li>
<li class="chapter" data-level="2.3.4" data-path="flow.html"><a href="flow.html#一次原则"><i class="fa fa-check"></i><b>2.3.4</b> 一次原则</a></li>
</ul></li>
<li class="chapter" data-level="2.4" data-path="flow.html"><a href="flow.html#gnu-环境"><i class="fa fa-check"></i><b>2.4</b> GNU 环境</a>
<ul>
<li class="chapter" data-level="2.4.1" data-path="flow.html"><a href="flow.html#posix"><i class="fa fa-check"></i><b>2.4.1</b> POSIX</a></li>
<li class="chapter" data-level="2.4.2" data-path="flow.html"><a href="flow.html#gnu"><i class="fa fa-check"></i><b>2.4.2</b> GNU</a></li>
<li class="chapter" data-level="2.4.3" data-path="flow.html"><a href="flow.html#命令行"><i class="fa fa-check"></i><b>2.4.3</b> 命令行</a></li>
<li class="chapter" data-level="2.4.4" data-path="flow.html"><a href="flow.html#编辑器"><i class="fa fa-check"></i><b>2.4.4</b> 编辑器</a></li>
</ul></li>
<li class="chapter" data-level="2.5" data-path="flow.html"><a href="flow.html#版本控制"><i class="fa fa-check"></i><b>2.5</b> 版本控制</a>
<ul>
<li class="chapter" data-level="2.5.1" data-path="flow.html"><a href="flow.html#git"><i class="fa fa-check"></i><b>2.5.1</b> Git</a></li>
<li class="chapter" data-level="2.5.2" data-path="flow.html"><a href="flow.html#git的三种状态"><i class="fa fa-check"></i><b>2.5.2</b> Git的三种状态</a></li>
<li class="chapter" data-level="2.5.3" data-path="flow.html"><a href="flow.html#git仓库"><i class="fa fa-check"></i><b>2.5.3</b> Git仓库</a></li>
<li class="chapter" data-level="2.5.4" data-path="flow.html"><a href="flow.html#git命令实践"><i class="fa fa-check"></i><b>2.5.4</b> Git命令实践</a></li>
<li class="chapter" data-level="2.5.5" data-path="flow.html"><a href="flow.html#git目前的局限性"><i class="fa fa-check"></i><b>2.5.5</b> Git目前的局限性</a></li>
</ul></li>
</ul></li>
<li class="chapter" data-level="3" data-path="basic.html"><a href="basic.html"><i class="fa fa-check"></i><b>3</b> R编程基础</a>
<ul>
<li class="chapter" data-level="3.1" data-path="basic.html"><a href="basic.html#r语言简介"><i class="fa fa-check"></i><b>3.1</b> R语言简介</a></li>
<li class="chapter" data-level="3.2" data-path="basic.html"><a href="basic.html#r语言的特点"><i class="fa fa-check"></i><b>3.2</b> R语言的特点</a></li>
<li class="chapter" data-level="3.3" data-path="basic.html"><a href="basic.html#r与rtudio的安装"><i class="fa fa-check"></i><b>3.3</b> R与Rtudio的安装</a>
<ul>
<li class="chapter" data-level="3.3.1" data-path="basic.html"><a href="basic.html#安装r"><i class="fa fa-check"></i><b>3.3.1</b> 安装R</a></li>
<li class="chapter" data-level="3.3.2" data-path="basic.html"><a href="basic.html#r安装rstudio"><i class="fa fa-check"></i><b>3.3.2</b> R安装RStudio</a></li>
<li class="chapter" data-level="3.3.3" data-path="basic.html"><a href="basic.html#组织r代码的三种方式"><i class="fa fa-check"></i><b>3.3.3</b> 组织R代码的三种方式</a></li>
<li class="chapter" data-level="3.3.4" data-path="basic.html"><a href="basic.html#r代码的组成"><i class="fa fa-check"></i><b>3.3.4</b> R代码的组成</a></li>
</ul></li>
<li class="chapter" data-level="3.4" data-path="basic.html"><a href="basic.html#r对文件和路径的相关操作"><i class="fa fa-check"></i><b>3.4</b> R对文件和路径的相关操作</a>
<ul>
<li class="chapter" data-level="3.4.1" data-path="basic.html"><a href="basic.html#路径操作"><i class="fa fa-check"></i><b>3.4.1</b> 路径操作</a></li>
<li class="chapter" data-level="3.4.2" data-path="basic.html"><a href="basic.html#文件操作"><i class="fa fa-check"></i><b>3.4.2</b> 文件操作</a></li>
<li class="chapter" data-level="3.4.3" data-path="basic.html"><a href="basic.html#特殊路径"><i class="fa fa-check"></i><b>3.4.3</b> 特殊路径</a></li>
</ul></li>
<li class="chapter" data-level="3.5" data-path="basic.html"><a href="basic.html#数据类型"><i class="fa fa-check"></i><b>3.5</b> 数据类型</a>
<ul>
<li class="chapter" data-level="3.5.1" data-path="basic.html"><a href="basic.html#数值型"><i class="fa fa-check"></i><b>3.5.1</b> 数值型</a></li>
<li class="chapter" data-level="3.5.2" data-path="basic.html"><a href="basic.html#逻辑型布尔型"><i class="fa fa-check"></i><b>3.5.2</b> 逻辑型/布尔型</a></li>
<li class="chapter" data-level="3.5.3" data-path="basic.html"><a href="basic.html#字符型"><i class="fa fa-check"></i><b>3.5.3</b> 字符型</a></li>
<li class="chapter" data-level="3.5.4" data-path="basic.html"><a href="basic.html#缺失值"><i class="fa fa-check"></i><b>3.5.4</b> 缺失值</a></li>
<li class="chapter" data-level="3.5.5" data-path="basic.html"><a href="basic.html#数据类型判断与转换"><i class="fa fa-check"></i><b>3.5.5</b> 数据类型判断与转换</a></li>
<li class="chapter" data-level="3.5.6" data-path="basic.html"><a href="basic.html#运算"><i class="fa fa-check"></i><b>3.5.6</b> 运算</a></li>
</ul></li>
<li class="chapter" data-level="3.6" data-path="basic.html"><a href="basic.html#变量"><i class="fa fa-check"></i><b>3.6</b> 变量</a></li>
<li class="chapter" data-level="3.7" data-path="basic.html"><a href="basic.html#数据结构"><i class="fa fa-check"></i><b>3.7</b> 数据结构</a>
<ul>
<li class="chapter" data-level="3.7.1" data-path="basic.html"><a href="basic.html#向量"><i class="fa fa-check"></i><b>3.7.1</b> 向量</a></li>
<li class="chapter" data-level="3.7.2" data-path="basic.html"><a href="basic.html#因子"><i class="fa fa-check"></i><b>3.7.2</b> 因子</a></li>
<li class="chapter" data-level="3.7.3" data-path="basic.html"><a href="basic.html#矩阵"><i class="fa fa-check"></i><b>3.7.3</b> 矩阵</a></li>
<li class="chapter" data-level="3.7.4" data-path="basic.html"><a href="basic.html#数据框"><i class="fa fa-check"></i><b>3.7.4</b> 数据框</a></li>
<li class="chapter" data-level="3.7.5" data-path="basic.html"><a href="basic.html#列表"><i class="fa fa-check"></i><b>3.7.5</b> 列表</a></li>
<li class="chapter" data-level="3.7.6" data-path="basic.html"><a href="basic.html#数据结构之间的转化"><i class="fa fa-check"></i><b>3.7.6</b> 数据结构之间的转化</a></li>
</ul></li>
<li class="chapter" data-level="3.8" data-path="basic.html"><a href="basic.html#数据读写"><i class="fa fa-check"></i><b>3.8</b> 数据读写</a>
<ul>
<li class="chapter" data-level="3.8.1" data-path="basic.html"><a href="basic.html#csv文件"><i class="fa fa-check"></i><b>3.8.1</b> csv文件</a></li>
<li class="chapter" data-level="3.8.2" data-path="basic.html"><a href="basic.html#hdf5文件"><i class="fa fa-check"></i><b>3.8.2</b> HDF5文件</a></li>
<li class="chapter" data-level="3.8.3" data-path="basic.html"><a href="basic.html#xml"><i class="fa fa-check"></i><b>3.8.3</b> XML</a></li>
<li class="chapter" data-level="3.8.4" data-path="basic.html"><a href="basic.html#json"><i class="fa fa-check"></i><b>3.8.4</b> JSON</a></li>
<li class="chapter" data-level="3.8.5" data-path="basic.html"><a href="basic.html#专用数据文件"><i class="fa fa-check"></i><b>3.8.5</b> 专用数据文件</a></li>
</ul></li>
<li class="chapter" data-level="3.9" data-path="basic.html"><a href="basic.html#流程控制"><i class="fa fa-check"></i><b>3.9</b> 流程控制</a>
<ul>
<li class="chapter" data-level="3.9.1" data-path="basic.html"><a href="basic.html#条件判断"><i class="fa fa-check"></i><b>3.9.1</b> 条件判断</a></li>
<li class="chapter" data-level="3.9.2" data-path="basic.html"><a href="basic.html#循环"><i class="fa fa-check"></i><b>3.9.2</b> 循环</a></li>
</ul></li>
<li class="chapter" data-level="3.10" data-path="basic.html"><a href="basic.html#函数"><i class="fa fa-check"></i><b>3.10</b> 函数</a>
<ul>
<li class="chapter" data-level="3.10.1" data-path="basic.html"><a href="basic.html#函数的定义与调用"><i class="fa fa-check"></i><b>3.10.1</b> 函数的定义与调用</a></li>
<li class="chapter" data-level="3.10.2" data-path="basic.html"><a href="basic.html#变量作用域"><i class="fa fa-check"></i><b>3.10.2</b> 变量作用域</a></li>
<li class="chapter" data-level="3.10.3" data-path="basic.html"><a href="basic.html#函数模块化"><i class="fa fa-check"></i><b>3.10.3</b> 函数模块化</a></li>
<li class="chapter" data-level="3.10.4" data-path="basic.html"><a href="basic.html#包"><i class="fa fa-check"></i><b>3.10.4</b> 包</a></li>
</ul></li>
<li class="chapter" data-level="3.11" data-path="basic.html"><a href="basic.html#向量化"><i class="fa fa-check"></i><b>3.11</b> 向量化</a>
<ul>
<li class="chapter" data-level="3.11.1" data-path="basic.html"><a href="basic.html#apply"><i class="fa fa-check"></i><b>3.11.1</b> apply</a></li>
<li class="chapter" data-level="3.11.2" data-path="basic.html"><a href="basic.html#lapply"><i class="fa fa-check"></i><b>3.11.2</b> lapply</a></li>
<li class="chapter" data-level="3.11.3" data-path="basic.html"><a href="basic.html#sapply"><i class="fa fa-check"></i><b>3.11.3</b> sapply</a></li>
<li class="chapter" data-level="3.11.4" data-path="basic.html"><a href="basic.html#vapply"><i class="fa fa-check"></i><b>3.11.4</b> vapply</a></li>
<li class="chapter" data-level="3.11.5" data-path="basic.html"><a href="basic.html#mapply"><i class="fa fa-check"></i><b>3.11.5</b> mapply</a></li>
<li class="chapter" data-level="3.11.6" data-path="basic.html"><a href="basic.html#其他"><i class="fa fa-check"></i><b>3.11.6</b> 其他</a></li>
</ul></li>
<li class="chapter" data-level="3.12" data-path="basic.html"><a href="basic.html#代码风格"><i class="fa fa-check"></i><b>3.12</b> 代码风格</a></li>
</ul></li>
<li class="chapter" data-level="4" data-path="md.html"><a href="md.html"><i class="fa fa-check"></i><b>4</b> 文学式编程</a>
<ul>
<li class="chapter" data-level="4.1" data-path="md.html"><a href="md.html#什么是文学式编程"><i class="fa fa-check"></i><b>4.1</b> 什么是文学式编程</a></li>
<li class="chapter" data-level="4.2" data-path="md.html"><a href="md.html#markdown格式"><i class="fa fa-check"></i><b>4.2</b> Markdown格式</a>
<ul>
<li class="chapter" data-level="4.2.1" data-path="md.html"><a href="md.html#标题"><i class="fa fa-check"></i><b>4.2.1</b> 标题</a></li>
<li class="chapter" data-level="4.2.2" data-path="md.html"><a href="md.html#段落文本"><i class="fa fa-check"></i><b>4.2.2</b> 段落文本</a></li>
<li class="chapter" data-level="4.2.3" data-path="md.html"><a href="md.html#表格"><i class="fa fa-check"></i><b>4.2.3</b> 表格</a></li>
<li class="chapter" data-level="4.2.4" data-path="md.html"><a href="md.html#图片"><i class="fa fa-check"></i><b>4.2.4</b> 图片</a></li>
<li class="chapter" data-level="4.2.5" data-path="md.html"><a href="md.html#代码块"><i class="fa fa-check"></i><b>4.2.5</b> 代码块</a></li>
</ul></li>
<li class="chapter" data-level="4.3" data-path="md.html"><a href="md.html#rmarkdown"><i class="fa fa-check"></i><b>4.3</b> RMarkdown</a>
<ul>
<li class="chapter" data-level="4.3.1" data-path="md.html"><a href="md.html#代码块控制"><i class="fa fa-check"></i><b>4.3.1</b> 代码块控制</a></li>
</ul></li>
<li class="chapter" data-level="4.4" data-path="md.html"><a href="md.html#xaringan"><i class="fa fa-check"></i><b>4.4</b> Xaringan</a></li>
<li class="chapter" data-level="4.5" data-path="md.html"><a href="md.html#leanr"><i class="fa fa-check"></i><b>4.5</b> LeanR</a></li>
<li class="chapter" data-level="4.6" data-path="md.html"><a href="md.html#bookdown"><i class="fa fa-check"></i><b>4.6</b> Bookdown</a></li>
<li class="chapter" data-level="4.7" data-path="md.html"><a href="md.html#格式转化"><i class="fa fa-check"></i><b>4.7</b> 格式转化</a></li>
</ul></li>
<li class="chapter" data-level="5" data-path="manipulate.html"><a href="manipulate.html"><i class="fa fa-check"></i><b>5</b> 数据操纵</a>
<ul>
<li class="chapter" data-level="5.1" data-path="manipulate.html"><a href="manipulate.html#整洁数据tidydata"><i class="fa fa-check"></i><b>5.1</b> 整洁数据tidydata</a>
<ul>
<li class="chapter" data-level="5.1.1" data-path="manipulate.html"><a href="manipulate.html#分析单位unit-of-analysis"><i class="fa fa-check"></i><b>5.1.1</b> 分析单位(unit of analysis)</a></li>
</ul></li>
<li class="chapter" data-level="5.2" data-path="manipulate.html"><a href="manipulate.html#整齐数据"><i class="fa fa-check"></i><b>5.2</b> 整齐数据</a>
<ul>
<li class="chapter" data-level="5.2.1" data-path="manipulate.html"><a href="manipulate.html#整齐数据的缘起"><i class="fa fa-check"></i><b>5.2.1</b> 整齐数据的缘起</a></li>
<li class="chapter" data-level="5.2.2" data-path="manipulate.html"><a href="manipulate.html#整齐数据的定义"><i class="fa fa-check"></i><b>5.2.2</b> 整齐数据的定义</a></li>
<li class="chapter" data-level="5.2.3" data-path="manipulate.html"><a href="manipulate.html#数据的凌乱点"><i class="fa fa-check"></i><b>5.2.3</b> 数据的凌乱点</a></li>
</ul></li>
<li class="chapter" data-level="5.3" data-path="manipulate.html"><a href="manipulate.html#数据操纵案例"><i class="fa fa-check"></i><b>5.3</b> 数据操纵案例</a></li>
</ul></li>
<li class="chapter" data-level="6" data-path="visu.html"><a href="visu.html"><i class="fa fa-check"></i><b>6</b> 数据可视化</a>
<ul>
<li class="chapter" data-level="6.1" data-path="visu.html"><a href="visu.html#从一个可以画恐龙的包说起"><i class="fa fa-check"></i><b>6.1</b> 从一个可以画恐龙的包说起</a></li>
<li class="chapter" data-level="6.2" data-path="visu.html"><a href="visu.html#调色板"><i class="fa fa-check"></i><b>6.2</b> 调色板</a></li>
</ul></li>
<li class="chapter" data-level="7" data-path="reg.html"><a href="reg.html"><i class="fa fa-check"></i><b>7</b> 回归</a>
<ul>
<li class="chapter" data-level="7.1" data-path="reg.html"><a href="reg.html#一般线性回归"><i class="fa fa-check"></i><b>7.1</b> 一般线性回归</a>
<ul>
<li class="chapter" data-level="7.1.1" data-path="reg.html"><a href="reg.html#基础模型"><i class="fa fa-check"></i><b>7.1.1</b> 基础模型</a></li>
<li class="chapter" data-level="7.1.2" data-path="reg.html"><a href="reg.html#稳健性标准误"><i class="fa fa-check"></i><b>7.1.2</b> 稳健性标准误</a></li>
</ul></li>
<li class="chapter" data-level="7.2" data-path="reg.html"><a href="reg.html#因果推断的反事实框架"><i class="fa fa-check"></i><b>7.2</b> 因果推断的反事实框架</a>
<ul>
<li class="chapter" data-level="7.2.1" data-path="reg.html"><a href="reg.html#定义因果关系"><i class="fa fa-check"></i><b>7.2.1</b> 定义因果关系</a></li>
<li class="chapter" data-level="7.2.2" data-path="reg.html"><a href="reg.html#cef三定理"><i class="fa fa-check"></i><b>7.2.2</b> CEF三定理</a></li>
<li class="chapter" data-level="7.2.3" data-path="reg.html"><a href="reg.html#交互项还是分组回归"><i class="fa fa-check"></i><b>7.2.3</b> 交互项还是分组回归</a></li>
</ul></li>
<li class="chapter" data-level="7.3" data-path="reg.html"><a href="reg.html#匹配"><i class="fa fa-check"></i><b>7.3</b> 匹配</a>
<ul>
<li class="chapter" data-level="7.3.1" data-path="reg.html"><a href="reg.html#原理"><i class="fa fa-check"></i><b>7.3.1</b> 原理</a></li>
<li class="chapter" data-level="7.3.2" data-path="reg.html"><a href="reg.html#案例"><i class="fa fa-check"></i><b>7.3.2</b> 案例</a></li>
</ul></li>
<li class="chapter" data-level="7.4" data-path="reg.html"><a href="reg.html#工具变量"><i class="fa fa-check"></i><b>7.4</b> 工具变量</a>
<ul>
<li class="chapter" data-level="7.4.1" data-path="reg.html"><a href="reg.html#原理-1"><i class="fa fa-check"></i><b>7.4.1</b> 原理</a></li>
<li class="chapter" data-level="7.4.2" data-path="reg.html"><a href="reg.html#案例-1"><i class="fa fa-check"></i><b>7.4.2</b> 案例</a></li>
</ul></li>
<li class="chapter" data-level="7.5" data-path="reg.html"><a href="reg.html#双重差分"><i class="fa fa-check"></i><b>7.5</b> 双重差分</a>
<ul>
<li class="chapter" data-level="7.5.1" data-path="reg.html"><a href="reg.html#原理-2"><i class="fa fa-check"></i><b>7.5.1</b> 原理</a></li>
<li class="chapter" data-level="7.5.2" data-path="reg.html"><a href="reg.html#案例-2"><i class="fa fa-check"></i><b>7.5.2</b> 案例</a></li>
</ul></li>
<li class="chapter" data-level="7.6" data-path="reg.html"><a href="reg.html#断点回归"><i class="fa fa-check"></i><b>7.6</b> 断点回归</a>
<ul>
<li class="chapter" data-level="7.6.1" data-path="reg.html"><a href="reg.html#原理-3"><i class="fa fa-check"></i><b>7.6.1</b> 原理</a></li>
<li class="chapter" data-level="7.6.2" data-path="reg.html"><a href="reg.html#案例-3"><i class="fa fa-check"></i><b>7.6.2</b> 案例</a></li>
<li class="chapter" data-level="7.6.3" data-path="reg.html"><a href="reg.html#其他乱七八糟的方法"><i class="fa fa-check"></i><b>7.6.3</b> 其他乱七八糟的方法</a></li>
</ul></li>
<li class="chapter" data-level="7.7" data-path="reg.html"><a href="reg.html#formula-公式对象"><i class="fa fa-check"></i><b>7.7</b> formula (公式)对象</a>
<ul>
<li class="chapter" data-level="7.7.1" data-path="reg.html"><a href="reg.html#公式的生成"><i class="fa fa-check"></i><b>7.7.1</b> 公式的生成</a></li>
<li class="chapter" data-level="7.7.2" data-path="reg.html"><a href="reg.html#生成公式的运算符"><i class="fa fa-check"></i><b>7.7.2</b> 生成公式的运算符</a></li>
<li class="chapter" data-level="7.7.3" data-path="reg.html"><a href="reg.html#公式与字符串之间的转换"><i class="fa fa-check"></i><b>7.7.3</b> 公式与字符串之间的转换</a></li>
</ul></li>
<li class="chapter" data-level="7.8" data-path="reg.html"><a href="reg.html#表达式expression"><i class="fa fa-check"></i><b>7.8</b> 表达式expression</a></li>
<li class="chapter" data-level="7.9" data-path="reg.html"><a href="reg.html#表达式的生成与执行"><i class="fa fa-check"></i><b>7.9</b> 表达式的生成与执行</a></li>
<li class="chapter" data-level="7.10" data-path="reg.html"><a href="reg.html#表达式与字符串的转换"><i class="fa fa-check"></i><b>7.10</b> 表达式与字符串的转换</a></li>
<li class="chapter" data-level="7.11" data-path="reg.html"><a href="reg.html#使用stargazer输出表格"><i class="fa fa-check"></i><b>7.11</b> 使用stargazer输出表格</a>
<ul>
<li class="chapter" data-level="7.11.1" data-path="reg.html"><a href="reg.html#标准回归表"><i class="fa fa-check"></i><b>7.11.1</b> 标准回归表</a></li>
<li class="chapter" data-level="7.11.2" data-path="reg.html"><a href="reg.html#默认格式"><i class="fa fa-check"></i><b>7.11.2</b> 默认格式</a></li>
<li class="chapter" data-level="7.11.3" data-path="reg.html"><a href="reg.html#表格表头"><i class="fa fa-check"></i><b>7.11.3</b> 表格表头</a></li>
<li class="chapter" data-level="7.11.4" data-path="reg.html"><a href="reg.html#表格正文"><i class="fa fa-check"></i><b>7.11.4</b> 表格正文</a></li>
<li class="chapter" data-level="7.11.5" data-path="reg.html"><a href="reg.html#添加变量信息"><i class="fa fa-check"></i><b>7.11.5</b> 添加变量信息</a></li>
<li class="chapter" data-level="7.11.6" data-path="reg.html"><a href="reg.html#选择统计量"><i class="fa fa-check"></i><b>7.11.6</b> 选择统计量</a></li>
<li class="chapter" data-level="7.11.7" data-path="reg.html"><a href="reg.html#表格注释"><i class="fa fa-check"></i><b>7.11.7</b> 表格注释</a></li>
<li class="chapter" data-level="7.11.8" data-path="reg.html"><a href="reg.html#整体布局"><i class="fa fa-check"></i><b>7.11.8</b> 整体布局</a></li>
<li class="chapter" data-level="7.11.9" data-path="reg.html"><a href="reg.html#其他-1"><i class="fa fa-check"></i><b>7.11.9</b> 其他</a></li>
<li class="chapter" data-level="7.11.10" data-path="reg.html"><a href="reg.html#描述性统计表"><i class="fa fa-check"></i><b>7.11.10</b> 描述性统计表</a></li>
</ul></li>
<li class="chapter" data-level="7.12" data-path="reg.html"><a href="reg.html#回归结果的可视化"><i class="fa fa-check"></i><b>7.12</b> 回归结果的可视化</a>
<ul>
<li class="chapter" data-level="7.12.1" data-path="reg.html"><a href="reg.html#使用ggcoefstats可视化回归结果"><i class="fa fa-check"></i><b>7.12.1</b> 使用ggcoefstats可视化回归结果</a></li>
<li class="chapter" data-level="7.12.2" data-path="reg.html"><a href="reg.html#使用"><i class="fa fa-check"></i><b>7.12.2</b> 使用</a></li>
<li class="chapter" data-level="7.12.3" data-path="reg.html"><a href="reg.html#双重差分模型的可视化"><i class="fa fa-check"></i><b>7.12.3</b> 双重差分模型的可视化</a></li>
</ul></li>
</ul></li>
<li class="chapter" data-level="8" data-path="cml.html"><a href="cml.html"><i class="fa fa-check"></i><b>8</b> 命令行</a>
<ul>
<li class="chapter" data-level="8.1" data-path="cml.html"><a href="cml.html#命令的基本概念"><i class="fa fa-check"></i><b>8.1</b> 命令的基本概念</a></li>
<li class="chapter" data-level="8.2" data-path="cml.html"><a href="cml.html#通配符"><i class="fa fa-check"></i><b>8.2</b> 通配符</a></li>
<li class="chapter" data-level="8.3" data-path="cml.html"><a href="cml.html#正则表达式"><i class="fa fa-check"></i><b>8.3</b> 正则表达式</a></li>
<li class="chapter" data-level="8.4" data-path="cml.html"><a href="cml.html#r的命令行选项"><i class="fa fa-check"></i><b>8.4</b> R的命令行选项</a>
<ul>
<li class="chapter" data-level="8.4.1" data-path="cml.html"><a href="cml.html#linuxunix-shebang"><i class="fa fa-check"></i><b>8.4.1</b> Linux/Unix Shebang</a></li>
<li class="chapter" data-level="8.4.2" data-path="cml.html"><a href="cml.html#argparse包实例"><i class="fa fa-check"></i><b>8.4.2</b> argparse包实例</a></li>
</ul></li>
</ul></li>
<li class="chapter" data-level="9" data-path="web.html"><a href="web.html"><i class="fa fa-check"></i><b>9</b> 网络数据采集</a>
<ul>
<li class="chapter" data-level="9.1" data-path="web.html"><a href="web.html#网络数据格式"><i class="fa fa-check"></i><b>9.1</b> 网络数据格式</a>
<ul>
<li class="chapter" data-level="9.1.1" data-path="web.html"><a href="web.html#csv"><i class="fa fa-check"></i><b>9.1.1</b> CSV</a></li>
<li class="chapter" data-level="9.1.2" data-path="web.html"><a href="web.html#xml-1"><i class="fa fa-check"></i><b>9.1.2</b> XML</a></li>
<li class="chapter" data-level="9.1.3" data-path="web.html"><a href="web.html#json-1"><i class="fa fa-check"></i><b>9.1.3</b> JSON</a></li>
</ul></li>
<li class="chapter" data-level="9.2" data-path="web.html"><a href="web.html#html"><i class="fa fa-check"></i><b>9.2</b> HTML</a>
<ul>
<li class="chapter" data-level="9.2.1" data-path="web.html"><a href="web.html#html的基本语法"><i class="fa fa-check"></i><b>9.2.1</b> HTML的基本语法</a></li>
<li class="chapter" data-level="9.2.2" data-path="web.html"><a href="web.html#常见html标签"><i class="fa fa-check"></i><b>9.2.2</b> 常见HTML标签</a></li>
<li class="chapter" data-level="9.2.3" data-path="web.html"><a href="web.html#dom树形数据结构"><i class="fa fa-check"></i><b>9.2.3</b> DOM树形数据结构</a></li>
</ul></li>
<li class="chapter" data-level="9.3" data-path="web.html"><a href="web.html#css"><i class="fa fa-check"></i><b>9.3</b> CSS</a>
<ul>
<li class="chapter" data-level="9.3.1" data-path="web.html"><a href="web.html#css的基本语法"><i class="fa fa-check"></i><b>9.3.1</b> CSS的基本语法</a></li>
<li class="chapter" data-level="9.3.2" data-path="web.html"><a href="web.html#id选择器"><i class="fa fa-check"></i><b>9.3.2</b> id选择器</a></li>
<li class="chapter" data-level="9.3.3" data-path="web.html"><a href="web.html#类选择器"><i class="fa fa-check"></i><b>9.3.3</b> 类选择器</a></li>
</ul></li>
<li class="chapter" data-level="9.4" data-path="web.html"><a href="web.html#javascript"><i class="fa fa-check"></i><b>9.4</b> JavaScript</a>
<ul>
<li class="chapter" data-level="9.4.1" data-path="web.html"><a href="web.html#javascript案例"><i class="fa fa-check"></i><b>9.4.1</b> JavaScript案例</a></li>
<li class="chapter" data-level="9.4.2" data-path="web.html"><a href="web.html#javascript的基本语法"><i class="fa fa-check"></i><b>9.4.2</b> JavaScript的基本语法</a></li>
<li class="chapter" data-level="9.4.3" data-path="web.html"><a href="web.html#ajax"><i class="fa fa-check"></i><b>9.4.3</b> AJAX</a></li>
</ul></li>
<li class="chapter" data-level="9.5" data-path="web.html"><a href="web.html#开发者工具"><i class="fa fa-check"></i><b>9.5</b> 开发者工具</a>
<ul>
<li class="chapter" data-level="9.5.1" data-path="web.html"><a href="web.html#打开开发者工具"><i class="fa fa-check"></i><b>9.5.1</b> 打开开发者工具</a></li>
<li class="chapter" data-level="9.5.2" data-path="web.html"><a href="web.html#查看器与样式"><i class="fa fa-check"></i><b>9.5.2</b> 查看器与样式</a></li>
<li class="chapter" data-level="9.5.3" data-path="web.html"><a href="web.html#其他功能"><i class="fa fa-check"></i><b>9.5.3</b> 其他功能</a></li>
</ul></li>
<li class="chapter" data-level="9.6" data-path="web.html"><a href="web.html#xpath"><i class="fa fa-check"></i><b>9.6</b> Xpath</a>
<ul>
<li class="chapter" data-level="9.6.1" data-path="web.html"><a href="web.html#基本查询"><i class="fa fa-check"></i><b>9.6.1</b> 基本查询</a></li>
</ul></li>
<li class="chapter" data-level="9.7" data-path="web.html"><a href="web.html#http"><i class="fa fa-check"></i><b>9.7</b> HTTP</a>
<ul>
<li class="chapter" data-level="9.7.1" data-path="web.html"><a href="web.html#http常见方法"><i class="fa fa-check"></i><b>9.7.1</b> HTTP常见方法</a></li>
</ul></li>
<li class="chapter" data-level="9.8" data-path="web.html"><a href="web.html#静态爬虫"><i class="fa fa-check"></i><b>9.8</b> 静态爬虫</a></li>
<li class="chapter" data-level="9.9" data-path="web.html"><a href="web.html#使用rselenium的动态爬虫"><i class="fa fa-check"></i><b>9.9</b> 使用RSelenium的动态爬虫</a>
<ul>
<li class="chapter" data-level="9.9.1" data-path="web.html"><a href="web.html#rselenium简介与安装"><i class="fa fa-check"></i><b>9.9.1</b> RSelenium简介与安装</a></li>
<li class="chapter" data-level="9.9.2" data-path="web.html"><a href="web.html#安装docker"><i class="fa fa-check"></i><b>9.9.2</b> 安装Docker</a></li>
<li class="chapter" data-level="9.9.3" data-path="web.html"><a href="web.html#rselenum语法"><i class="fa fa-check"></i><b>9.9.3</b> RSelenum语法</a></li>
<li class="chapter" data-level="9.9.4" data-path="web.html"><a href="web.html#案例1在链家搜索并获取相关信息"><i class="fa fa-check"></i><b>9.9.4</b> 案例1:在链家搜索并获取相关信息</a></li>
<li class="chapter" data-level="9.9.5" data-path="web.html"><a href="web.html#案例2登录豆瓣"><i class="fa fa-check"></i><b>9.9.5</b> 案例2:登录豆瓣</a></li>
</ul></li>
</ul></li>
<li class="chapter" data-level="10" data-path="geo.html"><a href="geo.html"><i class="fa fa-check"></i><b>10</b> 地理计算</a>
<ul>
<li class="chapter" data-level="10.1" data-path="geo.html"><a href="geo.html#r中地理计算"><i class="fa fa-check"></i><b>10.1</b> R中地理计算</a></li>
<li class="chapter" data-level="10.2" data-path="geo.html"><a href="geo.html#地理数据结构"><i class="fa fa-check"></i><b>10.2</b> 地理数据结构</a>
<ul>
<li class="chapter" data-level="10.2.1" data-path="geo.html"><a href="geo.html#向量vector"><i class="fa fa-check"></i><b>10.2.1</b> 向量(Vector)</a></li>
<li class="chapter" data-level="10.2.2" data-path="geo.html"><a href="geo.html#栅格raster"><i class="fa fa-check"></i><b>10.2.2</b> 栅格(Raster)</a></li>
<li class="chapter" data-level="10.2.3" data-path="geo.html"><a href="geo.html#坐标系coordinate-reference-system"><i class="fa fa-check"></i><b>10.2.3</b> 坐标系(coordinate reference system)</a></li>
</ul></li>
<li class="chapter" data-level="10.3" data-path="geo.html"><a href="geo.html#地理数据操纵"><i class="fa fa-check"></i><b>10.3</b> 地理数据操纵</a></li>
<li class="chapter" data-level="10.4" data-path="geo.html"><a href="geo.html#地理数据可视化"><i class="fa fa-check"></i><b>10.4</b> 地理数据可视化</a></li>
<li class="chapter" data-level="10.5" data-path="geo.html"><a href="geo.html#地理数据运算"><i class="fa fa-check"></i><b>10.5</b> 地理数据运算</a>
<ul>
<li class="chapter" data-level="10.5.1" data-path="geo.html"><a href="geo.html#取子集"><i class="fa fa-check"></i><b>10.5.1</b> 取子集</a></li>
</ul></li>
<li class="chapter" data-level="10.6" data-path="geo.html"><a href="geo.html#地理数据读写"><i class="fa fa-check"></i><b>10.6</b> 地理数据读写</a></li>
<li class="chapter" data-level="10.7" data-path="geo.html"><a href="geo.html#地理数据计算"><i class="fa fa-check"></i><b>10.7</b> 地理数据计算</a></li>
</ul></li>
<li class="chapter" data-level="11" data-path="make.html"><a href="make.html"><i class="fa fa-check"></i><b>11</b> GUN Make的数据生产线</a>
<ul>
<li class="chapter" data-level="11.1" data-path="make.html"><a href="make.html#使用make的必要性"><i class="fa fa-check"></i><b>11.1</b> 使用Make的必要性</a></li>
<li class="chapter" data-level="11.2" data-path="make.html"><a href="make.html#数据流水线的构造目标"><i class="fa fa-check"></i><b>11.2</b> 数据流水线的构造目标</a></li>
<li class="chapter" data-level="11.3" data-path="make.html"><a href="make.html#make安装"><i class="fa fa-check"></i><b>11.3</b> Make安装</a></li>
<li class="chapter" data-level="11.4" data-path="make.html"><a href="make.html#快速上手make"><i class="fa fa-check"></i><b>11.4</b> 快速上手make</a></li>
<li class="chapter" data-level="11.5" data-path="make.html"><a href="make.html#make的工作方式"><i class="fa fa-check"></i><b>11.5</b> make的工作方式</a></li>
<li class="chapter" data-level="11.6" data-path="make.html"><a href="make.html#makefile-的高级写法"><i class="fa fa-check"></i><b>11.6</b> Makefile 的高级写法</a>
<ul>
<li class="chapter" data-level="11.6.1" data-path="make.html"><a href="make.html#特殊目标"><i class="fa fa-check"></i><b>11.6.1</b> 特殊目标</a></li>
<li class="chapter" data-level="11.6.2" data-path="make.html"><a href="make.html#使用变量"><i class="fa fa-check"></i><b>11.6.2</b> 使用变量</a></li>
<li class="chapter" data-level="11.6.3" data-path="make.html"><a href="make.html#分支与循环结构"><i class="fa fa-check"></i><b>11.6.3</b> 分支与循环结构</a></li>
<li class="chapter" data-level="11.6.4" data-path="make.html"><a href="make.html#函数-1"><i class="fa fa-check"></i><b>11.6.4</b> 函数</a></li>
</ul></li>
<li class="chapter" data-level="11.7" data-path="make.html"><a href="make.html#make的高级语法"><i class="fa fa-check"></i><b>11.7</b> Make的高级语法</a>
<ul>
<li class="chapter" data-level="11.7.1" data-path="make.html"><a href="make.html#并行计算"><i class="fa fa-check"></i><b>11.7.1</b> 并行计算</a></li>
</ul></li>
<li class="chapter" data-level="11.8" data-path="make.html"><a href="make.html#参考资料"><i class="fa fa-check"></i><b>11.8</b> 参考资料</a></li>
</ul></li>
<li class="appendix"><span><b>附录</b></span></li>
<li class="chapter" data-level="A" data-path="sound.html"><a href="sound.html"><i class="fa fa-check"></i><b>A</b> 余音绕梁</a></li>
<li class="chapter" data-level="" data-path="references.html"><a href="references.html"><i class="fa fa-check"></i>参考文献</a></li>
<li class="chapter" data-level="B" data-path="date.html"><a href="date.html"><i class="fa fa-check"></i><b>B</b> R日期时间</a>
<ul>
<li class="chapter" data-level="B.1" data-path="date.html"><a href="date.html#日期-时间数据类型"><i class="fa fa-check"></i><b>B.1</b> 日期-时间数据类型</a></li>
<li class="chapter" data-level="B.2" data-path="date.html"><a href="date.html#lubridate包"><i class="fa fa-check"></i><b>B.2</b> lubridate包</a>
<ul>
<li class="chapter" data-level="B.2.1" data-path="date.html"><a href="date.html#定义日期-时间变量"><i class="fa fa-check"></i><b>B.2.1</b> 定义日期-时间变量</a></li>
</ul></li>
<li class="chapter" data-level="B.3" data-path="date.html"><a href="date.html#从日期-时间中取出元素"><i class="fa fa-check"></i><b>B.3</b> 从日期-时间中取出元素</a></li>
<li class="chapter" data-level="B.4" data-path="date.html"><a href="date.html#日期-时间取整"><i class="fa fa-check"></i><b>B.4</b> 日期-时间取整</a></li>
<li class="chapter" data-level="B.5" data-path="date.html"><a href="date.html#日期-时间的数学运算"><i class="fa fa-check"></i><b>B.5</b> 日期-时间的数学运算</a>
<ul>
<li class="chapter" data-level="B.5.1" data-path="date.html"><a href="date.html#时间长度"><i class="fa fa-check"></i><b>B.5.1</b> 时间长度</a></li>
<li class="chapter" data-level="B.5.2" data-path="date.html"><a href="date.html#时间周期"><i class="fa fa-check"></i><b>B.5.2</b> 时间周期</a></li>
<li class="chapter" data-level="B.5.3" data-path="date.html"><a href="date.html#时间区间"><i class="fa fa-check"></i><b>B.5.3</b> 时间区间</a></li>
</ul></li>
</ul></li>
<li class="divider"></li>
<li><a href="https://bookdown.org" target="blank">本书由 bookdown 强力驱动</a></li>
</ul>
</nav>
</div>
<div class="book-body">
<div class="body-inner">
<div class="book-header" role="navigation">
<h1>
<i class="fa fa-circle-o-notch fa-spin"></i><a href="./">数据工程讲义:经济学分册</a>
</h1>
</div>
<div class="page-wrapper" tabindex="-1" role="main">
<div class="page-inner">
<section class="normal" id="section-">
<div id="md" class="section level1 hasAnchor" number="4">
<h1><span class="header-section-number">第 4 章</span> 文学式编程<a href="md.html#md" class="anchor-section" aria-label="Anchor link to header"></a></h1>
<p>可复现性是数据工程誓死捍卫的底线原则与科学研究区分于巫术的主要特征。R语言内嵌了一整套自动化报告解决方案,可以保证结果可复现。另一方面,任何数据分析报告都不是一簇而就的,必然涉及到反反复复的结果调试,R语言自动化报告可以帮我们避免反复将分析结果赋值粘贴到Word文档里面(如果你不理解这句话,那说明你还不是一个资深数据分析人员),避免了这种愚蠢的重复劳动。我们一直认为懒没有错,因为懒是推动人类寻找更高效技术方案的原生动力,自动化报告就是这样的技术方案。</p>
<div id="什么是文学式编程" class="section level2 hasAnchor" number="4.1">
<h2><span class="header-section-number">4.1</span> 什么是文学式编程<a href="md.html#什么是文学式编程" class="anchor-section" aria-label="Anchor link to header"></a></h2>
<p>文学式编程是相对于结构式编程而言的。结构式编程就是我们前面学到的那些循环、分支结构、函数等代码,让计算机按照我们的设定去执行特定任务。但是在展示这些运算结果的时候,我们还需要将其编辑到一个文档或者演示文稿中。文学式编程则是将这两步融合在一起,分析报告的正文和代码放入同一个文档,编译的时候分别运行,从而一次性生成分析报告。</p>
<p>文学式编程起源于大神Knuth开发的Sweave框架,大名鼎鼎的Tex就是其作品。写到这里,忍不住要提到Tex开发的故事,当年Knuth老人家不满出版社的排版质量,一气之下写了一套高质量排版系统,并写支票奖励发现缺陷的人,奖金都是16进制的1美元,而且金额随缺陷数目递增(这段轶事大神谢益辉的书籍中也有记载)。</p>
<p>2011年,R语言社区大神谢益辉(我在课上把他称为华人之光)由于忍不了Sweave的图片宽度设置等问题,一气之下(又来!)开发了knitr包(具体这段历史可以参考谢益辉自己的<a href="https://bookdown.org/yihui/r-ninja/auto-report.html">回忆</a><a href="#fn1" class="footnote-ref" id="fnref1"><sup>1</sup></a>),兼容并无限拓展Sweave,把我们从LaTex的深坑中拯救了出来。读到这里,如果你还没有体会过LaTex的坑有多深,那么恭喜你,你可以不用体会,直接跳入RMarkdown的简洁世界吧。</p>
<p>上面的故事也告诉我们,如果你想推动技术进步,就让程序员生气吧,忍无可忍的程序员总会搞出一些惊天动地的事情。</p>
</div>
<div id="markdown格式" class="section level2 hasAnchor" number="4.2">
<h2><span class="header-section-number">4.2</span> Markdown格式<a href="md.html#markdown格式" class="anchor-section" aria-label="Anchor link to header"></a></h2>
<p><code>Markdown</code>格式是最简洁的带格式的文本语法。<code>Markdown</code>是John Gruber于2004年开发的,使用一组非常简洁的符合人类阅读习惯的标签来实现大部分文本文档中的格式,大量被程序开发人员使用。</p>
<div id="标题" class="section level3 hasAnchor" number="4.2.1">
<h3><span class="header-section-number">4.2.1</span> 标题<a href="md.html#标题" class="anchor-section" aria-label="Anchor link to header"></a></h3>
<p>标题使用<code>#</code>加空格的形式表示,几级标题就用几个<code>#</code>表示。由于本文是使用markdown语法写作的,因此就不演示编译后结果了。</p>
<pre><code># 一级标题
## 二级标题
### 三级标题
#### 四级标题</code></pre>
</div>
<div id="段落文本" class="section level3 hasAnchor" number="4.2.2">
<h3><span class="header-section-number">4.2.2</span> 段落文本<a href="md.html#段落文本" class="anchor-section" aria-label="Anchor link to header"></a></h3>
<p>段落可以是一行或者多行文字,不同段落之间用空行分割。<code>*</code>之间的文本为<em>斜体</em>,两个<code>*</code>之间的文本为<strong>加粗</strong>,三个以上<code>*</code>表示分隔符,使用<code>-</code>表示无序列表,使用<code>1.</code>表示有序列表,可以通过制表符来进行列表分级。通过<code>[](link)</code>来表示引用,link表示超链接地址。</p>
<p>例如,</p>
<pre><code>后来我就念了**两首诗**[^2],
[^2]: 纪念一位逝去的长者
> 苟利国家生死以,岂因祸福避趋之
他回忆说:“*一个人的命运啊,当然要靠自我奋斗,但是也要考虑到历史的行程。*”
***
人固有一死,
- 或重于泰山
- 或轻于鸿毛
- 或介于中间
更多关于markdown知识可以参考markdown手册和Rstudio的文档, 以及[Xie, Allaire, and Grolemund 2019](https://bookdown.org/yihui/rmarkdown/)。</code></pre>
<p>后来我就念了<strong>两首诗</strong><a href="#fn2" class="footnote-ref" id="fnref2"><sup>2</sup></a>,</p>
<blockquote>
<p>苟利国家生死以,岂因祸福避趋之</p>
</blockquote>
<p>他回忆说:“<em>一个人的命运啊,当然要靠自我奋斗,但是也要考虑到历史的行程。</em>”</p>
<hr />
<p>人固有一死,</p>
<ul>
<li>或重于泰山</li>
<li>或轻于鸿毛
<ul>
<li>或介于中间</li>
</ul></li>
</ul>
<p>更多关于markdown知识可以参考markdown手册和Rstudio的文档, 以及<a href="https://bookdown.org/yihui/rmarkdown/">Xie, Allaire, and Grolemund 2019</a>。</p>
</div>
<div id="表格" class="section level3 hasAnchor" number="4.2.3">
<h3><span class="header-section-number">4.2.3</span> 表格<a href="md.html#表格" class="anchor-section" aria-label="Anchor link to header"></a></h3>
<p>表格使用<code>|</code>分割不同的列,多个<code>-</code>区分表头与表格,并搭配<code>:</code>表示对齐方式,列宽度与输入的列标题下横线宽度成比例。例如:</p>
<pre><code>| Covariates | Mean | | Difference | P value |
| --------------------------------------------------------- |:---------:| --------- | ----------:| -------|
| | Acceptors | Rejectors | | |
| PhD from globally top-100 STEM program | 0.525 | 0.551 | −0.026 | 0.701 |
| Research productivity before return | | | | |
| Articles per year | 2.390 | 2.932 | −0.541 | 0.098 |
| First-authored articles per year | 1.003 | 1.058 | −0.055 | 0.658 |
| First-authored articles in top 10% of journals per year | 0.523 | 0.403 | 0.119 | 0.040 |
| Last-authored articles per year | 0.196 | 0.608 | −0.412 | 0.000 |
| Last-authored articles in top 10% of journals per year | 0.046 | 0.202 | −0.156 | 0.001 |
| Overseas faculty appointments | 0.136 | 0.890 | −0.755 | 0.000 |
| Research funding per year ($1000 in 2010 USD) | 4.439 | 30.365 | −25.925 | 0.006 |
Table: Table 1. YTT offer receiver comparison.(Shi et.al., 2023)[^3]
[^3]: Dongbo Shi et al. ,Has China’s Young Thousand Talents program been successful in recruiting and nurturing top-caliber scientists?.Science379,62-65(2023).DOI:10.1126/science.abq1218
</code></pre>
<table>
<caption>Table 1. YTT offer receiver comparison.(Shi et.al., 2023)<a href="#fn3" class="footnote-ref" id="fnref3"><sup>3</sup></a></caption>
<colgroup>
<col width="60%" />
<col width="11%" />
<col width="9%" />
<col width="11%" />
<col width="7%" />
</colgroup>
<thead>
<tr class="header">
<th>Covariates</th>
<th align="center">Mean</th>
<th></th>
<th align="right">Difference</th>
<th>P value</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td></td>
<td align="center">Acceptors</td>
<td>Rejectors</td>
<td align="right"></td>
<td></td>
</tr>
<tr class="even">
<td>PhD from globally top-100 STEM program</td>
<td align="center">0.525</td>
<td>0.551</td>
<td align="right">−0.026</td>
<td>0.701</td>
</tr>
<tr class="odd">
<td>Research productivity before return</td>
<td align="center"></td>
<td></td>
<td align="right"></td>
<td></td>
</tr>
<tr class="even">
<td>Articles per year</td>
<td align="center">2.390</td>
<td>2.932</td>
<td align="right">−0.541</td>
<td>0.098</td>
</tr>
<tr class="odd">
<td>First-authored articles per year</td>
<td align="center">1.003</td>
<td>1.058</td>
<td align="right">−0.055</td>
<td>0.658</td>
</tr>
<tr class="even">
<td>First-authored articles in top 10% of journals per year</td>
<td align="center">0.523</td>
<td>0.403</td>
<td align="right">0.119</td>
<td>0.040</td>
</tr>
<tr class="odd">
<td>Last-authored articles per year</td>
<td align="center">0.196</td>
<td>0.608</td>
<td align="right">−0.412</td>
<td>0.000</td>
</tr>
<tr class="even">
<td>Last-authored articles in top 10% of journals per year</td>
<td align="center">0.046</td>
<td>0.202</td>
<td align="right">−0.156</td>
<td>0.001</td>
</tr>
<tr class="odd">
<td>Overseas faculty appointments</td>
<td align="center">0.136</td>
<td>0.890</td>
<td align="right">−0.755</td>
<td>0.000</td>
</tr>
<tr class="even">
<td>Research funding per year ($1000 in 2010 USD)</td>
<td align="center">4.439</td>
<td>30.365</td>
<td align="right">−25.925</td>
<td>0.006</td>
</tr>
</tbody>
</table>
<p>实际上,对于比较已经有<code>MS Excel</code>文件的表格,可以使用在线工具将其直接转化为<code>Markdown</code>语法,例如<a href="https://tool.lu/tables" class="uri">https://tool.lu/tables</a>.</p>
</div>
<div id="图片" class="section level3 hasAnchor" number="4.2.4">
<h3><span class="header-section-number">4.2.4</span> 图片<a href="md.html#图片" class="anchor-section" aria-label="Anchor link to header"></a></h3>
<p><code>![]()</code>用于添加图片,方括号内是图片的标题,可以空缺,圆括号内是图片的地址,可以是网页图片也可以是本地图片。</p>
<pre><code></code></pre>
<p><img src="https://www.r-project.org/logo/Rlogo.png" /></p>
<p>或者</p>
<pre><code></code></pre>
<p><img src="Rlogo.png" /></p>
</div>
<div id="代码块" class="section level3 hasAnchor" number="4.2.5">
<h3><span class="header-section-number">4.2.5</span> 代码块<a href="md.html#代码块" class="anchor-section" aria-label="Anchor link to header"></a></h3>
<p>使用单个上标顿号`可以在文本行内标注代码代码引用,使用三个`可以将整个段落设置为代码块。</p>
<p>段落代码块使用时,可以在三个`后用<code>{}</code>来标记代码块使用的编程语言。</p>
<div class="sourceCode" id="cb6"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb6-1"><a href="md.html#cb6-1" tabindex="-1"></a><span class="fu">library</span>(readr)</span></code></pre></div>
</div>
</div>
<div id="rmarkdown" class="section level2 hasAnchor" number="4.3">
<h2><span class="header-section-number">4.3</span> RMarkdown<a href="md.html#rmarkdown" class="anchor-section" aria-label="Anchor link to header"></a></h2>
<p>基于<code>knitr</code>包,R在Markdown语法的基础上,将运算代码和预算结果嵌入到文本当中,并做了针对性的设计,拓展名为<code>.Rmd</code>。</p>
<div id="代码块控制" class="section level3 hasAnchor" number="4.3.1">
<h3><span class="header-section-number">4.3.1</span> 代码块控制<a href="md.html#代码块控制" class="anchor-section" aria-label="Anchor link to header"></a></h3>
<p>在代码块的<code>{}</code>中通过<code>参数=取值</code>的方式来控制代码块在文档中的功能与呈现方式。为了更好区分不同的代码块,可以在<code>{r}</code>之后添加一个标签,例如<code>{r setup}</code>,只有标签是可以不指定参数名的。</p>
<p>常用参数如下:</p>
<table>
<colgroup>
<col width="33%" />
<col width="66%" />
</colgroup>
<thead>
<tr class="header">
<th align="left">参数</th>
<th align="left">说明</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td align="left"><code>eval</code></td>
<td align="left">是否运行代码,也可用向量指定运行代码的行数</td>
</tr>
<tr class="even">
<td align="left"><code>echo</code></td>
<td align="left">是否在文档中显示代码,也可用向量指定显示代码的行数</td>
</tr>
<tr class="odd">
<td align="left"><code>results</code></td>
<td align="left">显示文本输出的方式,<code>markup</code>用标记语言显示,<code>asis</code>显示原始文本,<code>hold</code>表示代码运行结束之后统一输出文本,<code>hide</code>表示隐藏文本结果</td>
</tr>
<tr class="even">
<td align="left"><code>collapse</code></td>
<td align="left">是否将代码块合并</td>
</tr>
<tr class="odd">
<td align="left"><code>warning</code></td>
<td align="left">是否输出警告信息</td>
</tr>
<tr class="even">
<td align="left"><code>message</code></td>
<td align="left">是否输出运行信息</td>
</tr>
<tr class="odd">
<td align="left"><code>include</code></td>
<td align="left">是否将代码结果输出到文档,当<code>FALSE</code>时,代码依然运行,但是不输出结果</td>
</tr>
<tr class="even">
<td align="left"><code>error</code></td>
<td align="left">是否在代码运行报错是停止编译markdown,缺省值是<code>TRUE</code></td>
</tr>
<tr class="odd">
<td align="left"><code>comment</code></td>
<td align="left">注释的标注方式,默认为<code>#</code></td>
</tr>
<tr class="even">
<td align="left"><code>background</code></td>
<td align="left">代码块的背景颜色</td>
</tr>
<tr class="odd">
<td align="left"><code>cache</code></td>
<td align="left">是否缓存代码,当<code>TRUE</code>时,代码在第二次编译时不重复运行</td>
</tr>
<tr class="even">
<td align="left"><code>fig.x</code></td>
<td align="left">系列参数设置图片输出的格式</td>
</tr>
<tr class="odd">
<td align="left"><code>file</code></td>
<td align="left">调用外部R代码</td>
</tr>
</tbody>
</table>
<p>可以在文档开头通过一个代码块设置全局参数,例如,</p>
<div class="sourceCode" id="cb7"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb7-1"><a href="md.html#cb7-1" tabindex="-1"></a><span class="co">#```</span></span>
<span id="cb7-2"><a href="md.html#cb7-2" tabindex="-1"></a>knitr<span class="sc">::</span>opts_chunk<span class="sc">$</span><span class="fu">set</span>(</span>
<span id="cb7-3"><a href="md.html#cb7-3" tabindex="-1"></a> <span class="at">comment =</span> <span class="st">''</span>, <span class="at">fig.width =</span> <span class="dv">6</span>, <span class="at">fig.height =</span> <span class="dv">6</span></span>
<span id="cb7-4"><a href="md.html#cb7-4" tabindex="-1"></a>)</span>
<span id="cb7-5"><a href="md.html#cb7-5" tabindex="-1"></a><span class="co">#```</span></span></code></pre></div>
<p>更详细的资料可以参考<a href="https://yihui.org/knitr/options/" class="uri">https://yihui.org/knitr/options/</a>。</p>
</div>
</div>
<div id="xaringan" class="section level2 hasAnchor" number="4.4">
<h2><span class="header-section-number">4.4</span> Xaringan<a href="md.html#xaringan" class="anchor-section" aria-label="Anchor link to header"></a></h2>
<p>Xarigan的一些神奇的技巧</p>
</div>
<div id="leanr" class="section level2 hasAnchor" number="4.5">
<h2><span class="header-section-number">4.5</span> LeanR<a href="md.html#leanr" class="anchor-section" aria-label="Anchor link to header"></a></h2>
</div>
<div id="bookdown" class="section level2 hasAnchor" number="4.6">
<h2><span class="header-section-number">4.6</span> Bookdown<a href="md.html#bookdown" class="anchor-section" aria-label="Anchor link to header"></a></h2>
</div>
<div id="格式转化" class="section level2 hasAnchor" number="4.7">
<h2><span class="header-section-number">4.7</span> 格式转化<a href="md.html#格式转化" class="anchor-section" aria-label="Anchor link to header"></a></h2>
</div>
</div>
<div class="footnotes">
<hr />
<ol start="1">
<li id="fn1"><p>R语言忍者秘笈 <a href="https://bookdown.org/yihui/r-ninja/" class="uri">https://bookdown.org/yihui/r-ninja/</a> <a href="md.html#fnref1" class="footnote-back">↩︎</a></p></li>
<li id="fn2"><p>纪念一位逝去的长者<a href="md.html#fnref2" class="footnote-back">↩︎</a></p></li>
<li id="fn3"><p>Dongbo Shi et al. ,Has China’s Young Thousand Talents program been successful in recruiting and nurturing top-caliber scientists?.Science379,62-65(2023).DOI:10.1126/science.abq1218<a href="md.html#fnref3" class="footnote-back">↩︎</a></p></li>
</ol>
</div>
</section>
</div>
</div>
</div>
<a href="basic.html" class="navigation navigation-prev " aria-label="Previous page"><i class="fa fa-angle-left"></i></a>
<a href="manipulate.html" class="navigation navigation-next " aria-label="Next page"><i class="fa fa-angle-right"></i></a>
</div>
</div>
<script src="libs/gitbook-2.6.7/js/app.min.js"></script>
<script src="libs/gitbook-2.6.7/js/clipboard.min.js"></script>
<script src="libs/gitbook-2.6.7/js/plugin-search.js"></script>
<script src="libs/gitbook-2.6.7/js/plugin-sharing.js"></script>
<script src="libs/gitbook-2.6.7/js/plugin-fontsettings.js"></script>
<script src="libs/gitbook-2.6.7/js/plugin-bookdown.js"></script>
<script src="libs/gitbook-2.6.7/js/jquery.highlight.js"></script>
<script src="libs/gitbook-2.6.7/js/plugin-clipboard.js"></script>
<script>
gitbook.require(["gitbook"], function(gitbook) {
gitbook.start({
"sharing": {
"github": true,
"facebook": false,
"twitter": true,
"linkedin": false,
"weibo": false,
"instapaper": false,
"vk": false,
"whatsapp": false,
"all": ["facebook", "twitter", "linkedin", "weibo", "instapaper"]
},
"fontsettings": {
"theme": "white",
"family": "sans",
"size": 2
},
"edit": {
"link": "https://github.com/yihui/bookdown-chinese/edit/master/04-markdown.Rmd",
"text": "编辑"
},
"history": {
"link": null,
"text": null
},
"view": {
"link": null,
"text": null
},
"download": ["dataengeering.pdf", "dataengeering.epub"],
"search": {
"engine": "fuse",
"options": null
},
"toc": {
"collapse": "none"
}
});
});
</script>
</body>
</html>