PageSourceSearch

https://estannydotcom.netlify.app/data-analysis-fa-22

html estannydotcom.netlify.app collected 2026-10-03 10:42:41 UTC 78,346 bytes, 2,748 lines download raw bytes

1<!DOCTYPE html>
2
3<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
4
5<head>
6  <meta charset="utf-8"/>
7  <meta name="viewport" content="width=device-width, initial-scale=1"/>
8  <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1"/>
9  <meta name="generator" content="distill" />
10
11  <style type="text/css">
12  /* Hide doc at startup (prevent jankiness while JS renders/transforms) */
13  body {
14    visibility: hidden;
15  }
16  </style>
17
18 <!--radix_placeholder_import_source-->
19 <!--/radix_placeholder_import_source-->
20
21<style type="text/css">code{white-space: pre;}</style>
22<style type="text/css" data-origin="pandoc">
23pre > code.sourceCode { white-space: pre; position: relative; }
24pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }
25pre > code.sourceCode > span:empty { height: 1.2em; }
26.sourceCode { overflow: visible; }
27code.sourceCode > span { color: inherit; text-decoration: inherit; }
28div.sourceCode { margin: 1em 0; }
29pre.sourceCode { margin: 0; }
30@media screen {
31div.sourceCode { overflow: auto; }
32}
33@media print {
34pre > code.sourceCode { white-space: pre-wrap; }
35pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
36}
37pre.numberSource code
38  { counter-reset: source-line 0; }
39pre.numberSource code > span
40  { position: relative; left: -4em; counter-increment: source-line; }
41pre.numberSource code > span > a:first-child::before
42  { content: counter(source-line);
43    position: relative; left: -1em; text-align: right; vertical-align: baseline;
44    border: none; display: inline-block;
45    -webkit-touch-callout: none; -webkit-user-select: none;
46    -khtml-user-select: none; -moz-user-select: none;
47    -ms-user-select: none; user-select: none;
48    padding: 0 4px; width: 4em;
49    color: #aaaaaa;
50  }
51pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa;  padding-left: 4px; }
52div.sourceCode
53  { color: #00769e; background-color: #f1f3f5; }
54@media screen {
55pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
56}
57code span { color: #00769e; } /* Normal */
58code span.al { color: #ad0000; } /* Alert */
59code span.an { color: #5e5e5e; } /* Annotation */
60code span.at { color: #657422; } /* Attribute */
61code span.bn { color: #ad0000; } /* BaseN */
62code span.bu { } /* BuiltIn */
63code span.cf { color: #00769e; } /* ControlFlow */
64code span.ch { color: #20794d; } /* Char */
65code span.cn { color: #8f5902; } /* Constant */
66code span.co { color: #5e5e5e; } /* Comment */
67code span.cv { color: #5e5e5e; font-style: italic; } /* CommentVar */
68code span.do { color: #5e5e5e; font-style: italic; } /* Documentation */
69code span.dt { color: #ad0000; } /* DataType */
70code span.dv { color: #ad0000; } /* DecVal */
71code span.er { color: #ad0000; } /* Error */
72code span.ex { } /* Extension */
73code span.fl { color: #ad0000; } /* Float */
74code span.fu { color: #4758ab; } /* Function */
75code span.im { } /* Import */
76code span.in { color: #5e5e5e; } /* Information */
77code span.kw { color: #00769e; } /* Keyword */
78code span.op { color: #5e5e5e; } /* Operator */
79code span.ot { color: #00769e; } /* Other */
80code span.pp { color: #ad0000; } /* Preprocessor */
81code span.sc { color: #5e5e5e; } /* SpecialChar */
82code span.ss { color: #20794d; } /* SpecialString */
83code span.st { color: #20794d; } /* String */
84code span.va { color: #111111; } /* Variable */
85code span.vs { color: #20794d; } /* VerbatimString */
86code span.wa { color: #5e5e5e; font-style: italic; } /* Warning */
87</style>
88
89
90  <!--radix_placeholder_meta_tags-->
91  <title>Elizabeth Stanny: Business Data Analysis and Interpretation</title>
92
93  <meta property="description" itemprop="description" content="Fall 2022 BUS 320 Syllabus"/>
94
95
96
97  <!--  https://developers.facebook.com/docs/sharing/webmasters#markup -->
98  <meta property="og:title" content="Elizabeth Stanny: Business Data Analysis and Interpretation"/>
99  <meta property="og:type" content="article"/>
100  <meta property="og:description" content="Fall 2022 BUS 320 Syllabus"/>
101  <meta property="og:locale" content="en_US"/>
102  <meta property="og:site_name" content="Elizabeth Stanny"/>
103
104  <!--  https://dev.twitter.com/cards/types/summary -->
105  <meta property="twitter:card" content="summary"/>
106  <meta property="twitter:title" content="Elizabeth Stanny: Business Data Analysis and Interpretation"/>
107  <meta property="twitter:description" content="Fall 2022 BUS 320 Syllabus"/>
108
109  <!--/radix_placeholder_meta_tags-->
110  <!--radix_placeholder_rmarkdown_metadata-->
111
112  
112<script type="text/json" id="radix-rmarkdown-metadata">
113  {"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["title","description","output"]}},"value":[{"type":"character","attributes":{},"value":["Business Data Analysis and Interpretation"]},{"type":"character","attributes":{},"value":["Fall 2022 BUS 320 Syllabus\n"]},{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["distill::distill_article"]}},"value":[{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["toc","toc_depth"]}},"value":[{"type":"logical","attributes":{},"value":[true]},{"type":"integer","attributes":{},"value":[3]}]}]}]}
114  </script>
114
115  <!--/radix_placeholder_rmarkdown_metadata-->
116  <!--radix_placeholder_navigation_in_header-->
117  <meta name="distill:offset" content=""/>
118
119  
119<script type="application/javascript">
120
121    window.headroom_prevent_pin = false;
122
123    window.document.addEventListener("DOMContentLoaded", function (event) {
124
125      // initialize headroom for banner
126      var header = $('header').get(0);
127      var headerHeight = header.offsetHeight;
128      var headroom = new Headroom(header, {
129        tolerance: 5,
130        onPin : function() {
131          if (window.headroom_prevent_pin) {
132            window.headroom_prevent_pin = false;
133            headroom.unpin();
134          }
135        }
136      });
137      headroom.init();
138      if(window.location.hash)
139        headroom.unpin();
140      $(header).addClass('headroom--transition');
141
142      // offset scroll location for banner on hash change
143      // (see: https://github.com/WickyNilliams/headroom.js/issues/38)
144      window.addEventListener("hashchange", function(event) {
145        window.scrollTo(0, window.pageYOffset - (headerHeight + 25));
146      });
147
148      // responsive menu
149      $('.distill-site-header').each(function(i, val) {
150        var topnav = $(this);
151        var toggle = topnav.find('.nav-toggle');
152        toggle.on('click', function() {
153          topnav.toggleClass('responsive');
154        });
155      });
156
157      // nav dropdowns
158      $('.nav-dropbtn').click(function(e) {
159        $(this).next('.nav-dropdown-content').toggleClass('nav-dropdown-active');
160        $(this).parent().siblings('.nav-dropdown')
161           .children('.nav-dropdown-content').removeClass('nav-dropdown-active');
162      });
163      $("body").click(function(e){
164        $('.nav-dropdown-content').removeClass('nav-dropdown-active');
165      });
166      $(".nav-dropdown").click(function(e){
167        e.stopPropagation();
168      });
169    });
170  </script>
170
171
172  <style type="text/css">
173
174  /* Theme (user-documented overrideables for nav appearance) */
175
176  .distill-site-nav {
177    color: rgba(255, 255, 255, 0.8);
178    background-color: #0F2E3D;
179    font-size: 15px;
180    font-weight: 300;
181  }
182
183  .distill-site-nav a {
184    color: inherit;
185    text-decoration: none;
186  }
187
188  .distill-site-nav a:hover {
189    color: white;
190  }
191
192  @media print {
193    .distill-site-nav {
194      display: none;
195    }
196  }
197
198  .distill-site-header {
199
200  }
201
202  .distill-site-footer {
203
204  }
205
206
207  /* Site Header */
208
209  .distill-site-header {
210    width: 100%;
211    box-sizing: border-box;
212    z-index: 3;
213  }
214
215  .distill-site-header .nav-left {
216    display: inline-block;
217    margin-left: 8px;
218  }
219
220  @media screen and (max-width: 768px) {
221    .distill-site-header .nav-left {
222      margin-left: 0;
223    }
224  }
225
226
227  .distill-site-header .nav-right {
228    float: right;
229    margin-right: 8px;
230  }
231
232  .distill-site-header a,
233  .distill-site-header .title {
234    display: inline-block;
235    text-align: center;
236    padding: 14px 10px 14px 10px;
237  }
238
239  .distill-site-header .title {
240    font-size: 18px;
241    min-width: 150px;
242  }
243
244  .distill-site-header .logo {
245    padding: 0;
246  }
247
248  .distill-site-header .logo img {
249    display: none;
250    max-height: 20px;
251    width: auto;
252    margin-bottom: -4px;
253  }
254
255  .distill-site-header .nav-image img {
256    max-height: 18px;
257    width: auto;
258    display: inline-block;
259    margin-bottom: -3px;
260  }
261
262
263
264  @media screen and (min-width: 1000px) {
265    .distill-site-header .logo img {
266      display: inline-block;
267    }
268    .distill-site-header .nav-left {
269      margin-left: 20px;
270    }
271    .distill-site-header .nav-right {
272      margin-right: 20px;
273    }
274    .distill-site-header .title {
275      padding-left: 12px;
276    }
277  }
278
279
280  .distill-site-header .nav-toggle {
281    display: none;
282  }
283
284  .nav-dropdown {
285    display: inline-block;
286    position: relative;
287  }
288
289  .nav-dropdown .nav-dropbtn {
290    border: none;
291    outline: none;
292    color: rgba(255, 255, 255, 0.8);
293    padding: 16px 10px;
294    background-color: transparent;
295    font-family: inherit;
296    font-size: inherit;
297    font-weight: inherit;
298    margin: 0;
299    margin-top: 1px;
300    z-index: 2;
301  }
302
303  .nav-dropdown-content {
304    display: none;
305    position: absolute;
306    background-color: white;
307    min-width: 200px;
308    border: 1px solid rgba(0,0,0,0.15);
309    border-radius: 4px;
310    box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.1);
311    z-index: 1;
312    margin-top: 2px;
313    white-space: nowrap;
314    padding-top: 4px;
315    padding-bottom: 4px;
316  }
317
318  .nav-dropdown-content hr {
319    margin-top: 4px;
320    margin-bottom: 4px;
321    border: none;
322    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
323  }
324
325  .nav-dropdown-active {
326    display: block;
327  }
328
329  .nav-dropdown-content a, .nav-dropdown-content .nav-dropdown-header {
330    color: black;
331    padding: 6px 24px;
332    text-decoration: none;
333    display: block;
334    text-align: left;
335  }
336
337  .nav-dropdown-content .nav-dropdown-header {
338    display: block;
339    padding: 5px 24px;
340    padding-bottom: 0;
341    text-transform: uppercase;
342    font-size: 14px;
343    color: #999999;
344    white-space: nowrap;
345  }
346
347  .nav-dropdown:hover .nav-dropbtn {
348    color: white;
349  }
350
351  .nav-dropdown-content a:hover {
352    background-color: #ddd;
353    color: black;
354  }
355
356  .nav-right .nav-dropdown-content {
357    margin-left: -45%;
358    right: 0;
359  }
360
361  @media screen and (max-width: 768px) {
362    .distill-site-header a, .distill-site-header .nav-dropdown  {display: none;}
363    .distill-site-header a.nav-toggle {
364      float: right;
365      display: block;
366    }
367    .distill-site-header .title {
368      margin-left: 0;
369    }
370    .distill-site-header .nav-right {
371      margin-right: 0;
372    }
373    .distill-site-header {
374      overflow: hidden;
375    }
376    .nav-right .nav-dropdown-content {
377      margin-left: 0;
378    }
379  }
380
381
382  @media screen and (max-width: 768px) {
383    .distill-site-header.responsive {position: relative; min-height: 500px; }
384    .distill-site-header.responsive a.nav-toggle {
385      position: absolute;
386      right: 0;
387      top: 0;
388    }
389    .distill-site-header.responsive a,
390    .distill-site-header.responsive .nav-dropdown {
391      display: block;
392      text-align: left;
393    }
394    .distill-site-header.responsive .nav-left,
395    .distill-site-header.responsive .nav-right {
396      width: 100%;
397    }
398    .distill-site-header.responsive .nav-dropdown {float: none;}
399    .distill-site-header.responsive .nav-dropdown-content {position: relative;}
400    .distill-site-header.responsive .nav-dropdown .nav-dropbtn {
401      display: block;
402      width: 100%;
403      text-align: left;
404    }
405  }
406
407  /* Site Footer */
408
409  .distill-site-footer {
410    width: 100%;
411    overflow: hidden;
412    box-sizing: border-box;
413    z-index: 3;
414    margin-top: 30px;
415    padding-top: 30px;
416    padding-bottom: 30px;
417    text-align: center;
418  }
419
420  /* Headroom */
421
422  d-title {
423    padding-top: 6rem;
424  }
425
426  @media print {
427    d-title {
428      padding-top: 4rem;
429    }
430  }
431
432  .headroom {
433    z-index: 1000;
434    position: fixed;
435    top: 0;
436    left: 0;
437    right: 0;
438  }
439
440  .headroom--transition {
441    transition: all .4s ease-in-out;
442  }
443
444  .headroom--unpinned {
445    top: -100px;
446  }
447
448  .headroom--pinned {
449    top: 0;
450  }
451
452  /* adjust viewport for navbar height */
453  /* helps vertically center bootstrap (non-distill) content */
454  .min-vh-100 {
455    min-height: calc(100vh - 100px) !important;
456  }
457
458  </style>
459
460  
460<script src="site_libs/jquery-3.6.0/jquery-3.6.0.min.js"></script>
460
461  <link href="site_libs/font-awesome-5.1.0/css/all.css" rel="stylesheet"/>
462  <link href="site_libs/font-awesome-5.1.0/css/v4-shims.css" rel="stylesheet"/>
463  
463<script src="site_libs/headroom-0.9.4/headroom.min.js"></script>
463
464  
464<script src="site_libs/autocomplete-0.37.1/autocomplete.min.js"></script>
464
465  
465<script src="site_libs/fuse-6.4.1/fuse.min.js"></script>
465
466
467  
467<script type="application/javascript">
468
469  function getMeta(metaName) {
470    var metas = document.getElementsByTagName('meta');
471    for (let i = 0; i < metas.length; i++) {
472      if (metas[i].getAttribute('name') === metaName) {
473        return metas[i].getAttribute('content');
474      }
475    }
476    return '';
477  }
478
479  function offsetURL(url) {
480    var offset = getMeta('distill:offset');
481    return offset ? offset + '/' + url : url;
482  }
483
484  function createFuseIndex() {
485
486    // create fuse index
487    var options = {
488      keys: [
489        { name: 'title', weight: 20 },
490        { name: 'categories', weight: 15 },
491        { name: 'description', weight: 10 },
492        { name: 'contents', weight: 5 },
493      ],
494      ignoreLocation: true,
495      threshold: 0
496    };
497    var fuse = new window.Fuse([], options);
498
499    // fetch the main search.json
500    return fetch(offsetURL('search.json'))
501      .then(function(response) {
502        if (response.status == 200) {
503          return response.json().then(function(json) {
504            // index main articles
505            json.articles.forEach(function(article) {
506              fuse.add(article);
507            });
508            // download collections and index their articles
509            return Promise.all(json.collections.map(function(collection) {
510              return fetch(offsetURL(collection)).then(function(response) {
511                if (response.status === 200) {
512                  return response.json().then(function(articles) {
513                    articles.forEach(function(article) {
514                      fuse.add(article);
515                    });
516                  })
517                } else {
518                  return Promise.reject(
519                    new Error('Unexpected status from search index request: ' +
520                              response.status)
521                  );
522                }
523              });
524            })).then(function() {
525              return fuse;
526            });
527          });
528
529        } else {
530          return Promise.reject(
531            new Error('Unexpected status from search index request: ' +
532                        response.status)
533          );
534        }
535      });
536  }
537
538  window.document.addEventListener("DOMContentLoaded", function (event) {
539
540    // get search element (bail if we don't have one)
541    var searchEl = window.document.getElementById('distill-search');
542    if (!searchEl)
543      return;
544
545    createFuseIndex()
546      .then(function(fuse) {
547
548        // make search box visible
549        searchEl.classList.remove('hidden');
550
551        // initialize autocomplete
552        var options = {
553          autoselect: true,
554          hint: false,
555          minLength: 2,
556        };
557        window.autocomplete(searchEl, options, [{
558          source: function(query, callback) {
559            const searchOptions = {
560              isCaseSensitive: false,
561              shouldSort: true,
562              minMatchCharLength: 2,
563              limit: 10,
564            };
565            var results = fuse.search(query, searchOptions);
566            callback(results
567              .map(function(result) { return result.item; })
568            );
569          },
570          templates: {
571            suggestion: function(suggestion) {
572              var img = suggestion.preview && Object.keys(suggestion.preview).length > 0
573                ? `<img src="${offsetURL(suggestion.preview)}"</img>`
574                : '';
575              var html = `
576                <div class="search-item">
577                  <h3>${suggestion.title}</h3>
578                  <div class="search-item-description">
579                    ${suggestion.description || ''}
580                  </div>
581                  <div class="search-item-preview">
582                    ${img}
583                  </div>
584                </div>
585              `;
586              return html;
587            }
588          }
589        }]).on('autocomplete:selected', function(event, suggestion) {
590          window.location.href = offsetURL(suggestion.path);
591        });
592        // remove inline display style on autocompleter (we want to
593        // manage responsive display via css)
594        $('.algolia-autocomplete').css("display", "");
595      })
596      .catch(function(error) {
597        console.log(error);
598      });
599
600  });
601
602  </script>
602
603
604  <style type="text/css">
605
606  .nav-search {
607    font-size: x-small;
608  }
609
610  /* Algolioa Autocomplete */
611
612  .algolia-autocomplete {
613    display: inline-block;
614    margin-left: 10px;
615    vertical-align: sub;
616    background-color: white;
617    color: black;
618    padding: 6px;
619    padding-top: 8px;
620    padding-bottom: 0;
621    border-radius: 6px;
622    border: 1px #0F2E3D solid;
623    width: 180px;
624  }
625
626
627  @media screen and (max-width: 768px) {
628    .distill-site-nav .algolia-autocomplete {
629      display: none;
630      visibility: hidden;
631    }
632    .distill-site-nav.responsive .algolia-autocomplete {
633      display: inline-block;
634      visibility: visible;
635    }
636    .distill-site-nav.responsive .algolia-autocomplete .aa-dropdown-menu {
637      margin-left: 0;
638      width: 400px;
639      max-height: 400px;
640    }
641  }
642
643  .algolia-autocomplete .aa-input, .algolia-autocomplete .aa-hint {
644    width: 90%;
645    outline: none;
646    border: none;
647  }
648
649  .algolia-autocomplete .aa-hint {
650    color: #999;
651  }
652  .algolia-autocomplete .aa-dropdown-menu {
653    width: 550px;
654    max-height: 70vh;
655    overflow-x: visible;
656    overflow-y: scroll;
657    padding: 5px;
658    margin-top: 3px;
659    margin-left: -150px;
660    background-color: #fff;
661    border-radius: 5px;
662    border: 1px solid #999;
663    border-top: none;
664  }
665
666  .algolia-autocomplete .aa-dropdown-menu .aa-suggestion {
667    cursor: pointer;
668    padding: 5px 4px;
669    border-bottom: 1px solid #eee;
670  }
671
672  .algolia-autocomplete .aa-dropdown-menu .aa-suggestion:last-of-type {
673    border-bottom: none;
674    margin-bottom: 2px;
675  }
676
677  .algolia-autocomplete .aa-dropdown-menu .aa-suggestion .search-item {
678    overflow: hidden;
679    font-size: 0.8em;
680    line-height: 1.4em;
681  }
682
683  .algolia-autocomplete .aa-dropdown-menu .aa-suggestion .search-item h3 {
684    font-size: 1rem;
685    margin-block-start: 0;
686    margin-block-end: 5px;
687  }
688
689  .algolia-autocomplete .aa-dropdown-menu .aa-suggestion .search-item-description {
690    display: inline-block;
691    overflow: hidden;
692    height: 2.8em;
693    width: 80%;
694    margin-right: 4%;
695  }
696
697  .algolia-autocomplete .aa-dropdown-menu .aa-suggestion .search-item-preview {
698    display: inline-block;
699    width: 15%;
700  }
701
702  .algolia-autocomplete .aa-dropdown-menu .aa-suggestion .search-item-preview img {
703    height: 3em;
704    width: auto;
705    display: none;
706  }
707
708  .algolia-autocomplete .aa-dropdown-menu .aa-suggestion .search-item-preview img[src] {
709    display: initial;
710  }
711
712  .algolia-autocomplete .aa-dropdown-menu .aa-suggestion.aa-cursor {
713    background-color: #eee;
714  }
715  .algolia-autocomplete .aa-dropdown-menu .aa-suggestion em {
716    font-weight: bold;
717    font-style: normal;
718  }
719
720  </style>
721
722
723  <!--/radix_placeholder_navigation_in_header-->
724  <!--radix_placeholder_distill-->
725
726  <style type="text/css">
727
728  body {
729    background-color: white;
730  }
731
732  .pandoc-table {
733    width: 100%;
734  }
735
736  .pandoc-table>caption {
737    margin-bottom: 10px;
738  }
739
740  .pandoc-table th:not([align]) {
741    text-align: left;
742  }
743
744  .pagedtable-footer {
745    font-size: 15px;
746  }
747
748  d-byline .byline {
749    grid-template-columns: 2fr 2fr;
750  }
751
752  d-byline .byline h3 {
753    margin-block-start: 1.5em;
754  }
755
756  d-byline .byline .authors-affiliations h3 {
757    margin-block-start: 0.5em;
758  }
759
760  .authors-affiliations .orcid-id {
761    width: 16px;
762    height:16px;
763    margin-left: 4px;
764    margin-right: 4px;
765    vertical-align: middle;
766    padding-bottom: 2px;
767  }
768
769  d-title .dt-tags {
770    margin-top: 1em;
771    grid-column: text;
772  }
773
774  .dt-tags .dt-tag {
775    text-decoration: none;
776    display: inline-block;
777    color: rgba(0,0,0,0.6);
778    padding: 0em 0.4em;
779    margin-right: 0.5em;
780    margin-bottom: 0.4em;
781    font-size: 70%;
782    border: 1px solid rgba(0,0,0,0.2);
783    border-radius: 3px;
784    text-transform: uppercase;
785    font-weight: 500;
786  }
787
788  d-article table.gt_table td,
789  d-article table.gt_table th {
790    border-bottom: none;
791    font-size: 100%;
792  }
793
794  .html-widget {
795    margin-bottom: 2.0em;
796  }
797
798  .l-screen-inset {
799    padding-right: 16px;
800  }
801
802  .l-screen .caption {
803    margin-left: 10px;
804  }
805
806  .shaded {
807    background: rgb(247, 247, 247);
808    padding-top: 20px;
809    padding-bottom: 20px;
810    border-top: 1px solid rgba(0, 0, 0, 0.1);
811    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
812  }
813
814  .shaded .html-widget {
815    margin-bottom: 0;
816    border: 1px solid rgba(0, 0, 0, 0.1);
817  }
818
819  .shaded .shaded-content {
820    background: white;
821  }
822
823  .text-output {
824    margin-top: 0;
825    line-height: 1.5em;
826  }
827
828  .hidden {
829    display: none !important;
830  }
831
832  d-article {
833    padding-top: 2.5rem;
834    padding-bottom: 30px;
835  }
836
837  d-appendix {
838    padding-top: 30px;
839  }
840
841  d-article>p>img {
842    width: 100%;
843  }
844
845  d-article h2 {
846    margin: 1rem 0 1.5rem 0;
847  }
848
849  d-article h3 {
850    margin-top: 1.5rem;
851  }
852
853  d-article iframe {
854    border: 1px solid rgba(0, 0, 0, 0.1);
855    margin-bottom: 2.0em;
856    width: 100%;
857  }
858
859  /* Tweak code blocks */
860
861  d-article div.sourceCode code,
862  d-article pre code {
863    font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
864  }
865
866  d-article pre,
867  d-article div.sourceCode,
868  d-article div.sourceCode pre {
869    overflow: auto;
870  }
871
872  d-article div.sourceCode {
873    background-color: white;
874  }
875
876  d-article div.sourceCode pre {
877    padding-left: 10px;
878    font-size: 12px;
879    border-left: 2px solid rgba(0,0,0,0.1);
880  }
881
882  d-article pre {
883    font-size: 12px;
884    color: black;
885    background: none;
886    margin-top: 0;
887    text-align: left;
888    white-space: pre;
889    word-spacing: normal;
890    word-break: normal;
891    word-wrap: normal;
892    line-height: 1.5;
893
894    -moz-tab-size: 4;
895    -o-tab-size: 4;
896    tab-size: 4;
897
898    -webkit-hyphens: none;
899    -moz-hyphens: none;
900    -ms-hyphens: none;
901    hyphens: none;
902  }
903
904  d-article pre a {
905    border-bottom: none;
906  }
907
908  d-article pre a:hover {
909    border-bottom: none;
910    text-decoration: underline;
911  }
912
913  d-article details {
914    grid-column: text;
915    margin-bottom: 0.8em;
916  }
917
918  @media(min-width: 768px) {
919
920  d-article pre,
921  d-article div.sourceCode,
922  d-article div.sourceCode pre {
923    overflow: visible !important;
924  }
925
926  d-article div.sourceCode pre {
927    padding-left: 18px;
928    font-size: 14px;
929  }
930
931  d-article pre {
932    font-size: 14px;
933  }
934
935  }
936
937  figure img.external {
938    background: white;
939    border: 1px solid rgba(0, 0, 0, 0.1);
940    box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);
941    padding: 18px;
942    box-sizing: border-box;
943  }
944
945  /* CSS for d-contents */
946
947  .d-contents {
948    grid-column: text;
949    color: rgba(0,0,0,0.8);
950    font-size: 0.9em;
951    padding-bottom: 1em;
952    margin-bottom: 1em;
953    padding-bottom: 0.5em;
954    margin-bottom: 1em;
955    padding-left: 0.25em;
956    justify-self: start;
957  }
958
959  @media(min-width: 1000px) {
960    .d-contents.d-contents-float {
961      height: 0;
962      grid-column-start: 1;
963      grid-column-end: 4;
964      justify-self: center;
965      padding-right: 3em;
966      padding-left: 2em;
967    }
968  }
969
970  .d-contents nav h3 {
971    font-size: 18px;
972    margin-top: 0;
973    margin-bottom: 1em;
974  }
975
976  .d-contents li {
977    list-style-type: none
978  }
979
980  .d-contents nav > ul {
981    padding-left: 0;
982  }
983
984  .d-contents ul {
985    padding-left: 1em
986  }
987
988  .d-contents nav ul li {
989    margin-top: 0.6em;
990    margin-bottom: 0.2em;
991  }
992
993  .d-contents nav a {
994    font-size: 13px;
995    border-bottom: none;
996    text-decoration: none
997    color: rgba(0, 0, 0, 0.8);
998  }
999
1000  .d-contents nav a:hover {
1001    text-decoration: underline solid rgba(0, 0, 0, 0.6)
1002  }
1003
1004  .d-contents nav > ul > li > a {
1005    font-weight: 600;
1006  }
1007
1008  .d-contents nav > ul > li > ul {
1009    font-weight: inherit;
1010  }
1011
1012  .d-contents nav > ul > li > ul > li {
1013    margin-top: 0.2em;
1014  }
1015
1016
1017  .d-contents nav ul {
1018    margin-top: 0;
1019    margin-bottom: 0.25em;
1020  }
1021
1022  .d-article-with-toc h2:nth-child(2) {
1023    margin-top: 0;
1024  }
1025
1026
1027  /* Figure */
1028
1029  .figure {
1030    position: relative;
1031    margin-bottom: 2.5em;
1032    margin-top: 1.5em;
1033  }
1034
1035  .figure .caption {
1036    color: rgba(0, 0, 0, 0.6);
1037    font-size: 12px;
1038    line-height: 1.5em;
1039  }
1040
1041  .figure img.external {
1042    background: white;
1043    border: 1px solid rgba(0, 0, 0, 0.1);
1044    box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);
1045    padding: 18px;
1046    box-sizing: border-box;
1047  }
1048
1049  .figure .caption a {
1050    color: rgba(0, 0, 0, 0.6);
1051  }
1052
1053  .figure .caption b,
1054  .figure .caption strong, {
1055    font-weight: 600;
1056    color: rgba(0, 0, 0, 1.0);
1057  }
1058
1059  /* Citations */
1060
1061  d-article .citation {
1062    color: inherit;
1063    cursor: inherit;
1064  }
1065
1066  div.hanging-indent{
1067    margin-left: 1em; text-indent: -1em;
1068  }
1069
1070  /* Citation hover box */
1071
1072  .tippy-box[data-theme~=light-border] {
1073    background-color: rgba(250, 250, 250, 0.95);
1074  }
1075
1076  .tippy-content > p {
1077    margin-bottom: 0;
1078    padding: 2px;
1079  }
1080
1081
1082  /* Tweak 1000px media break to show more text */
1083
1084  @media(min-width: 1000px) {
1085    .base-grid,
1086    distill-header,
1087    d-title,
1088    d-abstract,
1089    d-article,
1090    d-appendix,
1091    distill-appendix,
1092    d-byline,
1093    d-footnote-list,
1094    d-citation-list,
1095    distill-footer {
1096      grid-template-columns: [screen-start] 1fr [page-start kicker-start] 80px [middle-start] 50px [text-start kicker-end] 65px 65px 65px 65px 65px 65px 65px 65px [text-end gutter-start] 65px [middle-end] 65px [page-end gutter-end] 1fr [screen-end];
1097      grid-column-gap: 16px;
1098    }
1099
1100    .grid {
1101      grid-column-gap: 16px;
1102    }
1103
1104    d-article {
1105      font-size: 1.06rem;
1106      line-height: 1.7em;
1107    }
1108    figure .caption, .figure .caption, figure figcaption {
1109      font-size: 13px;
1110    }
1111  }
1112
1113  @media(min-width: 1180px) {
1114    .base-grid,
1115    distill-header,
1116    d-title,
1117    d-abstract,
1118    d-article,
1119    d-appendix,
1120    distill-appendix,
1121    d-byline,
1122    d-footnote-list,
1123    d-citation-list,
1124    distill-footer {
1125      grid-template-columns: [screen-start] 1fr [page-start kicker-start] 60px [middle-start] 60px [text-start kicker-end] 60px 60px 60px 60px 60px 60px 60px 60px [text-end gutter-start] 60px [middle-end] 60px [page-end gutter-end] 1fr [screen-end];
1126      grid-column-gap: 32px;
1127    }
1128
1129    .grid {
1130      grid-column-gap: 32px;
1131    }
1132  }
1133
1134
1135  /* Get the citation styles for the appendix (not auto-injected on render since
1136     we do our own rendering of the citation appendix) */
1137
1138  d-appendix .citation-appendix,
1139  .d-appendix .citation-appendix {
1140    font-size: 11px;
1141    line-height: 15px;
1142    border-left: 1px solid rgba(0, 0, 0, 0.1);
1143    padding-left: 18px;
1144    border: 1px solid rgba(0,0,0,0.1);
1145    background: rgba(0, 0, 0, 0.02);
1146    padding: 10px 18px;
1147    border-radius: 3px;
1148    color: rgba(150, 150, 150, 1);
1149    overflow: hidden;
1150    margin-top: -12px;
1151    white-space: pre-wrap;
1152    word-wrap: break-word;
1153  }
1154
1155  /* Include appendix styles here so they can be overridden */
1156
1157  d-appendix {
1158    contain: layout style;
1159    font-size: 0.8em;
1160    line-height: 1.7em;
1161    margin-top: 60px;
1162    margin-bottom: 0;
1163    border-top: 1px solid rgba(0, 0, 0, 0.1);
1164    color: rgba(0,0,0,0.5);
1165    padding-top: 60px;
1166    padding-bottom: 48px;
1167  }
1168
1169  d-appendix h3 {
1170    grid-column: page-start / text-start;
1171    font-size: 15px;
1172    font-weight: 500;
1173    margin-top: 1em;
1174    margin-bottom: 0;
1175    color: rgba(0,0,0,0.65);
1176  }
1177
1178  d-appendix h3 + * {
1179    margin-top: 1em;
1180  }
1181
1182  d-appendix ol {
1183    padding: 0 0 0 15px;
1184  }
1185
1186  @media (min-width: 768px) {
1187    d-appendix ol {
1188      padding: 0 0 0 30px;
1189      margin-left: -30px;
1190    }
1191  }
1192
1193  d-appendix li {
1194    margin-bottom: 1em;
1195  }
1196
1197  d-appendix a {
1198    color: rgba(0, 0, 0, 0.6);
1199  }
1200
1201  d-appendix > * {
1202    grid-column: text;
1203  }
1204
1205  d-appendix > d-footnote-list,
1206  d-appendix > d-citation-list,
1207  d-appendix > distill-appendix {
1208    grid-column: screen;
1209  }
1210
1211  /* Include footnote styles here so they can be overridden */
1212
1213  d-footnote-list {
1214    contain: layout style;
1215  }
1216
1217  d-footnote-list > * {
1218    grid-column: text;
1219  }
1220
1221  d-footnote-list a.footnote-backlink {
1222    color: rgba(0,0,0,0.3);
1223    padding-left: 0.5em;
1224  }
1225
1226
1227
1228  /* Anchor.js */
1229
1230  .anchorjs-link {
1231    /*transition: all .25s linear; */
1232    text-decoration: none;
1233    border-bottom: none;
1234  }
1235  *:hover > .anchorjs-link {
1236    margin-left: -1.125em !important;
1237    text-decoration: none;
1238    border-bottom: none;
1239  }
1240
1241  /* Social footer */
1242
1243  .social_footer {
1244    margin-top: 30px;
1245    margin-bottom: 0;
1246    color: rgba(0,0,0,0.67);
1247  }
1248
1249  .disqus-comments {
1250    margin-right: 30px;
1251  }
1252
1253  .disqus-comment-count {
1254    border-bottom: 1px solid rgba(0, 0, 0, 0.4);
1255    cursor: pointer;
1256  }
1257
1258  #disqus_thread {
1259    margin-top: 30px;
1260  }
1261
1262  .article-sharing a {
1263    border-bottom: none;
1264    margin-right: 8px;
1265  }
1266
1267  .article-sharing a:hover {
1268    border-bottom: none;
1269  }
1270
1271  .sidebar-section.subscribe {
1272    font-size: 12px;
1273    line-height: 1.6em;
1274  }
1275
1276  .subscribe p {
1277    margin-bottom: 0.5em;
1278  }
1279
1280
1281  .article-footer .subscribe {
1282    font-size: 15px;
1283    margin-top: 45px;
1284  }
1285
1286
1287  .sidebar-section.custom {
1288    font-size: 12px;
1289    line-height: 1.6em;
1290  }
1291
1292  .custom p {
1293    margin-bottom: 0.5em;
1294  }
1295
1296  /* Styles for listing layout (hide title) */
1297  .layout-listing d-title, .layout-listing .d-title {
1298    display: none;
1299  }
1300
1301  /* Styles for posts lists (not auto-injected) */
1302
1303
1304  .posts-with-sidebar {
1305    padding-left: 45px;
1306    padding-right: 45px;
1307  }
1308
1309  .posts-list .description h2,
1310  .posts-list .description p {
1311    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", Arial, sans-serif;
1312  }
1313
1314  .posts-list .description h2 {
1315    font-weight: 700;
1316    border-bottom: none;
1317    padding-bottom: 0;
1318  }
1319
1320  .posts-list h2.post-tag {
1321    border-bottom: 1px solid rgba(0, 0, 0, 0.2);
1322    padding-bottom: 12px;
1323  }
1324  .posts-list {
1325    margin-top: 60px;
1326    margin-bottom: 24px;
1327  }
1328
1329  .posts-list .post-preview {
1330    text-decoration: none;
1331    overflow: hidden;
1332    display: block;
1333    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
1334    padding: 24px 0;
1335  }
1336
1337  .post-preview-last {
1338    border-bottom: none !important;
1339  }
1340
1341  .posts-list .posts-list-caption {
1342    grid-column: screen;
1343    font-weight: 400;
1344  }
1345
1346  .posts-list .post-preview h2 {
1347    margin: 0 0 6px 0;
1348    line-height: 1.2em;
1349    font-style: normal;
1350    font-size: 24px;
1351  }
1352
1353  .posts-list .post-preview p {
1354    margin: 0 0 12px 0;
1355    line-height: 1.4em;
1356    font-size: 16px;
1357  }
1358
1359  .posts-list .post-preview .thumbnail {
1360    box-sizing: border-box;
1361    margin-bottom: 24px;
1362    position: relative;
1363    max-width: 500px;
1364  }
1365  .posts-list .post-preview img {
1366    width: 100%;
1367    display: block;
1368  }
1369
1370  .posts-list .metadata {
1371    font-size: 12px;
1372    line-height: 1.4em;
1373    margin-bottom: 18px;
1374  }
1375
1376  .posts-list .metadata > * {
1377    display: inline-block;
1378  }
1379
1380  .posts-list .metadata .publishedDate {
1381    margin-right: 2em;
1382  }
1383
1384  .posts-list .metadata .dt-authors {
1385    display: block;
1386    margin-top: 0.3em;
1387    margin-right: 2em;
1388  }
1389
1390  .posts-list .dt-tags {
1391    display: block;
1392    line-height: 1em;
1393  }
1394
1395  .posts-list .dt-tags .dt-tag {
1396    display: inline-block;
1397    color: rgba(0,0,0,0.6);
1398    padding: 0.3em 0.4em;
1399    margin-right: 0.2em;
1400    margin-bottom: 0.4em;
1401    font-size: 60%;
1402    border: 1px solid rgba(0,0,0,0.2);
1403    border-radius: 3px;
1404    text-transform: uppercase;
1405    font-weight: 500;
1406  }
1407
1408  .posts-list img {
1409    opacity: 1;
1410  }
1411
1412  .posts-list img[data-src] {
1413    opacity: 0;
1414  }
1415
1416  .posts-more {
1417    clear: both;
1418  }
1419
1420
1421  .posts-sidebar {
1422    font-size: 16px;
1423  }
1424
1425  .posts-sidebar h3 {
1426    font-size: 16px;
1427    margin-top: 0;
1428    margin-bottom: 0.5em;
1429    font-weight: 400;
1430    text-transform: uppercase;
1431  }
1432
1433  .sidebar-section {
1434    margin-bottom: 30px;
1435  }
1436
1437  .categories ul {
1438    list-style-type: none;
1439    margin: 0;
1440    padding: 0;
1441  }
1442
1443  .categories li {
1444    color: rgba(0, 0, 0, 0.8);
1445    margin-bottom: 0;
1446  }
1447
1448  .categories li>a {
1449    border-bottom: none;
1450  }
1451
1452  .categories li>a:hover {
1453    border-bottom: 1px solid rgba(0, 0, 0, 0.4);
1454  }
1455
1456  .categories .active {
1457    font-weight: 600;
1458  }
1459
1460  .categories .category-count {
1461    color: rgba(0, 0, 0, 0.4);
1462  }
1463
1464
1465  @media(min-width: 768px) {
1466    .posts-list .post-preview h2 {
1467      font-size: 26px;
1468    }
1469    .posts-list .post-preview .thumbnail {
1470      float: right;
1471      width: 30%;
1472      margin-bottom: 0;
1473    }
1474    .posts-list .post-preview .description {
1475      float: left;
1476      width: 45%;
1477    }
1478    .posts-list .post-preview .metadata {
1479      float: left;
1480      width: 20%;
1481      margin-top: 8px;
1482    }
1483    .posts-list .post-preview p {
1484      margin: 0 0 12px 0;
1485      line-height: 1.5em;
1486      font-size: 16px;
1487    }
1488    .posts-with-sidebar .posts-list {
1489      float: left;
1490      width: 75%;
1491    }
1492    .posts-with-sidebar .posts-sidebar {
1493      float: right;
1494      width: 20%;
1495      margin-top: 60px;
1496      padding-top: 24px;
1497      padding-bottom: 24px;
1498    }
1499  }
1500
1501
1502  /* Improve display for browsers without grid (IE/Edge <= 15) */
1503
1504  .downlevel {
1505    line-height: 1.6em;
1506    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", Arial, sans-serif;
1507    margin: 0;
1508  }
1509
1510  .downlevel .d-title {
1511    padding-top: 6rem;
1512    padding-bottom: 1.5rem;
1513  }
1514
1515  .downlevel .d-title h1 {
1516    font-size: 50px;
1517    font-weight: 700;
1518    line-height: 1.1em;
1519    margin: 0 0 0.5rem;
1520  }
1521
1522  .downlevel .d-title p {
1523    font-weight: 300;
1524    font-size: 1.2rem;
1525    line-height: 1.55em;
1526    margin-top: 0;
1527  }
1528
1529  .downlevel .d-byline {
1530    padding-top: 0.8em;
1531    padding-bottom: 0.8em;
1532    font-size: 0.8rem;
1533    line-height: 1.8em;
1534  }
1535
1536  .downlevel .section-separator {
1537    border: none;
1538    border-top: 1px solid rgba(0, 0, 0, 0.1);
1539  }
1540
1541  .downlevel .d-article {
1542    font-size: 1.06rem;
1543    line-height: 1.7em;
1544    padding-top: 1rem;
1545    padding-bottom: 2rem;
1546  }
1547
1548
1549  .downlevel .d-appendix {
1550    padding-left: 0;
1551    padding-right: 0;
1552    max-width: none;
1553    font-size: 0.8em;
1554    line-height: 1.7em;
1555    margin-bottom: 0;
1556    color: rgba(0,0,0,0.5);
1557    padding-top: 40px;
1558    padding-bottom: 48px;
1559  }
1560
1561  .downlevel .footnotes ol {
1562    padding-left: 13px;
1563  }
1564
1565  .downlevel .base-grid,
1566  .downlevel .distill-header,
1567  .downlevel .d-title,
1568  .downlevel .d-abstract,
1569  .downlevel .d-article,
1570  .downlevel .d-appendix,
1571  .downlevel .distill-appendix,
1572  .downlevel .d-byline,
1573  .downlevel .d-footnote-list,
1574  .downlevel .d-citation-list,
1575  .downlevel .distill-footer,
1576  .downlevel .appendix-bottom,
1577  .downlevel .posts-container {
1578    padding-left: 40px;
1579    padding-right: 40px;
1580  }
1581
1582  @media(min-width: 768px) {
1583    .downlevel .base-grid,
1584    .downlevel .distill-header,
1585    .downlevel .d-title,
1586    .downlevel .d-abstract,
1587    .downlevel .d-article,
1588    .downlevel .d-appendix,
1589    .downlevel .distill-appendix,
1590    .downlevel .d-byline,
1591    .downlevel .d-footnote-list,
1592    .downlevel .d-citation-list,
1593    .downlevel .distill-footer,
1594    .downlevel .appendix-bottom,
1595    .downlevel .posts-container {
1596    padding-left: 150px;
1597    padding-right: 150px;
1598    max-width: 900px;
1599  }
1600  }
1601
1602  .downlevel pre code {
1603    display: block;
1604    border-left: 2px solid rgba(0, 0, 0, .1);
1605    padding: 0 0 0 20px;
1606    font-size: 14px;
1607  }
1608
1609  .downlevel code, .downlevel pre {
1610    color: black;
1611    background: none;
1612    font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
1613    text-align: left;
1614    white-space: pre;
1615    word-spacing: normal;
1616    word-break: normal;
1617    word-wrap: normal;
1618    line-height: 1.5;
1619
1620    -moz-tab-size: 4;
1621    -o-tab-size: 4;
1622    tab-size: 4;
1623
1624    -webkit-hyphens: none;
1625    -moz-hyphens: none;
1626    -ms-hyphens: none;
1627    hyphens: none;
1628  }
1629
1630  .downlevel .posts-list .post-preview {
1631    color: inherit;
1632  }
1633
1634
1635
1636  </style>
1637
1638  
1638<script type="application/javascript">
1639
1640  function is_downlevel_browser() {
1641    if (bowser.isUnsupportedBrowser({ msie: "12", msedge: "16"},
1642                                   window.navigator.userAgent)) {
1643      return true;
1644    } else {
1645      return window.load_distill_framework === undefined;
1646    }
1647  }
1648
1649  // show body when load is complete
1650  function on_load_complete() {
1651
1652    // add anchors
1653    if (window.anchors) {
1654      window.anchors.options.placement = 'left';
1655      window.anchors.add('d-article > h2, d-article > h3, d-article > h4, d-article > h5');
1656    }
1657
1658
1659    // set body to visible
1660    document.body.style.visibility = 'visible';
1661
1662    // force redraw for leaflet widgets
1663    if (window.HTMLWidgets) {
1664      var maps = window.HTMLWidgets.findAll(".leaflet");
1665      $.each(maps, function(i, el) {
1666        var map = this.getMap();
1667        map.invalidateSize();
1668        map.eachLayer(function(layer) {
1669          if (layer instanceof L.TileLayer)
1670            layer.redraw();
1671        });
1672      });
1673    }
1674
1675    // trigger 'shown' so htmlwidgets resize
1676    $('d-article').trigger('shown');
1677  }
1678
1679  function init_distill() {
1680
1681    init_common();
1682
1683    // create front matter
1684    var front_matter = $('<d-front-matter></d-front-matter>');
1685    $('#distill-front-matter').wrap(front_matter);
1686
1687    // create d-title
1688    $('.d-title').changeElementType('d-title');
1689
1690    // create d-byline
1691    var byline = $('<d-byline></d-byline>');
1692    $('.d-byline').replaceWith(byline);
1693
1694    // create d-article
1695    var article = $('<d-article></d-article>');
1696    $('.d-article').wrap(article).children().unwrap();
1697
1698    // move posts container into article
1699    $('.posts-container').appendTo($('d-article'));
1700
1701    // create d-appendix
1702    $('.d-appendix').changeElementType('d-appendix');
1703
1704    // flag indicating that we have appendix items
1705    var appendix = $('.appendix-bottom').children('h3').length > 0;
1706
1707    // replace footnotes with <d-footnote>
1708    $('.footnote-ref').each(function(i, val) {
1709      appendix = true;
1710      var href = $(this).attr('href');
1711      var id = href.replace('#', '');
1712      var fn = $('#' + id);
1713      var fn_p = $('#' + id + '>p');
1714      fn_p.find('.footnote-back').remove();
1715      var text = fn_p.html();
1716      var dtfn = $('<d-footnote></d-footnote>');
1717      dtfn.html(text);
1718      $(this).replaceWith(dtfn);
1719    });
1720    // remove footnotes
1721    $('.footnotes').remove();
1722
1723    // move refs into #references-listing
1724    $('#references-listing').replaceWith($('#refs'));
1725
1726    $('h1.appendix, h2.appendix').each(function(i, val) {
1727      $(this).changeElementType('h3');
1728    });
1729    $('h3.appendix').each(function(i, val) {
1730      var id = $(this).attr('id');
1731      $('.d-contents a[href="#' + id + '"]').parent().remove();
1732      appendix = true;
1733      $(this).nextUntil($('h1, h2, h3')).addBack().appendTo($('d-appendix'));
1734    });
1735
1736    // show d-appendix if we have appendix content
1737    $("d-appendix").css('display', appendix ? 'grid' : 'none');
1738
1739    // localize layout chunks to just output
1740    $('.layout-chunk').each(function(i, val) {
1741
1742      // capture layout
1743      var layout = $(this).attr('data-layout');
1744
1745      // apply layout to markdown level block elements
1746      var elements = $(this).children().not('details, div.sourceCode, pre, script');
1747      elements.each(function(i, el) {
1748        var layout_div = $('<div class="' + layout + '"></div>');
1749        if (layout_div.hasClass('shaded')) {
1750          var shaded_content = $('<div class="shaded-content"></div>');
1751          $(this).wrap(shaded_content);
1752          $(this).parent().wrap(layout_div);
1753        } else {
1754          $(this).wrap(layout_div);
1755        }
1756      });
1757
1758
1759      // unwrap the layout-chunk div
1760      $(this).children().unwrap();
1761    });
1762
1763    // remove code block used to force  highlighting css
1764    $('.distill-force-highlighting-css').parent().remove();
1765
1766    // remove empty line numbers inserted by pandoc when using a
1767    // custom syntax highlighting theme
1768    $('code.sourceCode a:empty').remove();
1769
1770    // load distill framework
1771    load_distill_framework();
1772
1773    // wait for window.distillRunlevel == 4 to do post processing
1774    function distill_post_process() {
1775
1776      if (!window.distillRunlevel || window.distillRunlevel < 4)
1777        return;
1778
1779      // hide author/affiliations entirely if we have no authors
1780      var front_matter = JSON.parse($("#distill-front-matter").html());
1781      var have_authors = front_matter.authors && front_matter.authors.length > 0;
1782      if (!have_authors)
1783        $('d-byline').addClass('hidden');
1784
1785      // article with toc class
1786      $('.d-contents').parent().addClass('d-article-with-toc');
1787
1788      // strip links that point to #
1789      $('.authors-affiliations').find('a[href="#"]').removeAttr('href');
1790
1791      // add orcid ids
1792      $('.authors-affiliations').find('.author').each(function(i, el) {
1793        var orcid_id = front_matter.authors[i].orcidID;
1794        if (orcid_id) {
1795          var a = $('<a></a>');
1796          a.attr('href', 'https://orcid.org/' + orcid_id);
1797          var img = $('<img></img>');
1798          img.addClass('orcid-id');
1799          img.attr('alt', 'ORCID ID');
1800          img.attr('src','data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo1N0NEMjA4MDI1MjA2ODExOTk0QzkzNTEzRjZEQTg1NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozM0NDOEJGNEZGNTcxMUUxODdBOEVCODg2RjdCQ0QwOSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozM0NDOEJGM0ZGNTcxMUUxODdBOEVCODg2RjdCQ0QwOSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkZDN0YxMTc0MDcyMDY4MTE5NUZFRDc5MUM2MUUwNEREIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU3Q0QyMDgwMjUyMDY4MTE5OTRDOTM1MTNGNkRBODU3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+84NovQAAAR1JREFUeNpiZEADy85ZJgCpeCB2QJM6AMQLo4yOL0AWZETSqACk1gOxAQN+cAGIA4EGPQBxmJA0nwdpjjQ8xqArmczw5tMHXAaALDgP1QMxAGqzAAPxQACqh4ER6uf5MBlkm0X4EGayMfMw/Pr7Bd2gRBZogMFBrv01hisv5jLsv9nLAPIOMnjy8RDDyYctyAbFM2EJbRQw+aAWw/LzVgx7b+cwCHKqMhjJFCBLOzAR6+lXX84xnHjYyqAo5IUizkRCwIENQQckGSDGY4TVgAPEaraQr2a4/24bSuoExcJCfAEJihXkWDj3ZAKy9EJGaEo8T0QSxkjSwORsCAuDQCD+QILmD1A9kECEZgxDaEZhICIzGcIyEyOl2RkgwAAhkmC+eAm0TAAAAABJRU5ErkJggg==');
1801          a.append(img);
1802          $(this).append(a);
1803        }
1804      });
1805
1806      // hide elements of author/affiliations grid that have no value
1807      function hide_byline_column(caption) {
1808        $('d-byline').find('h3:contains("' + caption + '")').parent().css('visibility', 'hidden');
1809      }
1810
1811      // affiliations
1812      var have_affiliations = false;
1813      for (var i = 0; i<front_matter.authors.length; ++i) {
1814        var author = front_matter.authors[i];
1815        if (author.affiliation !== "&nbsp;") {
1816          have_affiliations = true;
1817          break;
1818        }
1819      }
1820      if (!have_affiliations)
1821        $('d-byline').find('h3:contains("Affiliations")').css('visibility', 'hidden');
1822
1823      // published date
1824      if (!front_matter.publishedDate)
1825        hide_byline_column("Published");
1826
1827      // document object identifier
1828      var doi = $('d-byline').find('h3:contains("DOI")');
1829      var doi_p = doi.next().empty();
1830      if (!front_matter.doi) {
1831        // if we have a citation and valid citationText then link to that
1832        if ($('#citation').length > 0 && front_matter.citationText) {
1833          doi.html('Citation');
1834          $('<a href="#citation"></a>')
1835            .text(front_matter.citationText)
1836            .appendTo(doi_p);
1837        } else {
1838          hide_byline_column("DOI");
1839        }
1840      } else {
1841        $('<a></a>')
1842           .attr('href', "https://doi.org/" + front_matter.doi)
1843           .html(front_matter.doi)
1844           .appendTo(doi_p);
1845      }
1846
1847       // change plural form of authors/affiliations
1848      if (front_matter.authors.length === 1) {
1849        var grid = $('.authors-affiliations');
1850        grid.children('h3:contains("Authors")').text('Author');
1851        grid.children('h3:contains("Affiliations")').text('Affiliation');
1852      }
1853
1854      // remove d-appendix and d-footnote-list local styles
1855      $('d-appendix > style:first-child').remove();
1856      $('d-footnote-list > style:first-child').remove();
1857
1858      // move appendix-bottom entries to the bottom
1859      $('.appendix-bottom').appendTo('d-appendix').children().unwrap();
1860      $('.appendix-bottom').remove();
1861
1862      // hoverable references
1863      $('span.citation[data-cites]').each(function() {
1864        const citeChild = $(this).children()[0]
1865        // Do not process if @xyz has been used without escaping and without bibliography activated
1866        // https://github.com/rstudio/distill/issues/466
1867        if (citeChild === undefined) return true
1868
1869        if (citeChild.nodeName == "D-FOOTNOTE") {
1870          var fn = citeChild
1871          $(this).html(fn.shadowRoot.querySelector("sup"))
1872          $(this).id = fn.id
1873          fn.remove()
1874        }
1875        var refs = $(this).attr('data-cites').split(" ");
1876        var refHtml = refs.map(function(ref) {
1877          // Could use CSS.escape too here, we insure backward compatibility in navigator
1878          return "<p>" + $('div[id="ref-' + ref + '"]').html() + "</p>";
1879        }).join("\n");
1880        window.tippy(this, {
1881          allowHTML: true,
1882          content: refHtml,
1883          maxWidth: 500,
1884          interactive: true,
1885          interactiveBorder: 10,
1886          theme: 'light-border',
1887          placement: 'bottom-start'
1888        });
1889      });
1890
1891      // fix footnotes in tables (#411)
1892      // replacing broken distill.pub feature
1893      $('table d-footnote').each(function() {
1894        // we replace internal showAtNode methode which is triggered when hovering a footnote
1895        this.hoverBox.showAtNode = function(node) {
1896          // ported from https://github.com/distillpub/template/pull/105/files
1897          calcOffset = function(elem) {
1898              let x = elem.offsetLeft;
1899              let y = elem.offsetTop;
1900              // Traverse upwards until an `absolute` element is found or `elem`
1901              // becomes null.
1902              while (elem = elem.offsetParent && elem.style.position != 'absolute') {
1903                  x += elem.offsetLeft;
1904                  y += elem.offsetTop;
1905              }
1906
1907              return { left: x, top: y };
1908          }
1909          // https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetTop
1910          const bbox = node.getBoundingClientRect();
1911          const offset = calcOffset(node);
1912          this.show([offset.left + bbox.width, offset.top + bbox.height]);
1913        }
1914      })
1915
1916      // clear polling timer
1917      clearInterval(tid);
1918
1919      // show body now that everything is ready
1920      on_load_complete();
1921    }
1922
1923    var tid = setInterval(distill_post_process, 50);
1924    distill_post_process();
1925
1926  }
1927
1928  function init_downlevel() {
1929
1930    init_common();
1931
1932     // insert hr after d-title
1933    $('.d-title').after($('<hr class="section-separator"/>'));
1934
1935    // check if we have authors
1936    var front_matter = JSON.parse($("#distill-front-matter").html());
1937    var have_authors = front_matter.authors && front_matter.authors.length > 0;
1938
1939    // manage byline/border
1940    if (!have_authors)
1941      $('.d-byline').remove();
1942    $('.d-byline').after($('<hr class="section-separator"/>'));
1943    $('.d-byline a').remove();
1944
1945    // remove toc
1946    $('.d-contents').remove();
1947
1948    // move appendix elements
1949    $('h1.appendix, h2.appendix').each(function(i, val) {
1950      $(this).changeElementType('h3');
1951    });
1952    $('h3.appendix').each(function(i, val) {
1953      $(this).nextUntil($('h1, h2, h3')).addBack().appendTo($('.d-appendix'));
1954    });
1955
1956
1957    // inject headers into references and footnotes
1958    var refs_header = $('<h3></h3>');
1959    refs_header.text('References');
1960    $('#refs').prepend(refs_header);
1961
1962    var footnotes_header = $('<h3></h3');
1963    footnotes_header.text('Footnotes');
1964    $('.footnotes').children('hr').first().replaceWith(footnotes_header);
1965
1966    // move appendix-bottom entries to the bottom
1967    $('.appendix-bottom').appendTo('.d-appendix').children().unwrap();
1968    $('.appendix-bottom').remove();
1969
1970    // remove appendix if it's empty
1971    if ($('.d-appendix').children().length === 0)
1972      $('.d-appendix').remove();
1973
1974    // prepend separator above appendix
1975    $('.d-appendix').before($('<hr class="section-separator" style="clear: both"/>'));
1976
1977    // trim code
1978    $('pre>code').each(function(i, val) {
1979      $(this).html($.trim($(this).html()));
1980    });
1981
1982    // move posts-container right before article
1983    $('.posts-container').insertBefore($('.d-article'));
1984
1985    $('body').addClass('downlevel');
1986
1987    on_load_complete();
1988  }
1989
1990
1991  function init_common() {
1992
1993    // jquery plugin to change element types
1994    (function($) {
1995      $.fn.changeElementType = function(newType) {
1996        var attrs = {};
1997
1998        $.each(this[0].attributes, function(idx, attr) {
1999          attrs[attr.nodeName] = attr.nodeValue;
2000        });
2001
2002        this.replaceWith(function() {
2003          return $("<" + newType + "/>", attrs).append($(this).contents());
2004        });
2005      };
2006    })(jQuery);
2007
2008    // prevent underline for linked images
2009    $('a > img').parent().css({'border-bottom' : 'none'});
2010
2011    // mark non-body figures created by knitr chunks as 100% width
2012    $('.layout-chunk').each(function(i, val) {
2013      var figures = $(this).find('img, .html-widget');
2014      // ignore leaflet img layers (#106)
2015      figures = figures.filter(':not(img[class*="leaflet"])')
2016      if ($(this).attr('data-layout') !== "l-body") {
2017        figures.css('width', '100%');
2018      } else {
2019        figures.css('max-width', '100%');
2020        figures.filter("[width]").each(function(i, val) {
2021          var fig = $(this);
2022          fig.css('width', fig.attr('width') + 'px');
2023        });
2024
2025      }
2026    });
2027
2028    // auto-append index.html to post-preview links in file: protocol
2029    // and in rstudio ide preview
2030    $('.post-preview').each(function(i, val) {
2031      if (window.location.protocol === "file:")
2032        $(this).attr('href', $(this).attr('href') + "index.html");
2033    });
2034
2035    // get rid of index.html references in header
2036    if (window.location.protocol !== "file:") {
2037      $('.distill-site-header a[href]').each(function(i,val) {
2038        $(this).attr('href', $(this).attr('href').replace(/^index[.]html/, "./"));
2039      });
2040    }
2041
2042    // add class to pandoc style tables
2043    $('tr.header').parent('thead').parent('table').addClass('pandoc-table');
2044    $('.kable-table').children('table').addClass('pandoc-table');
2045
2046    // add figcaption style to table captions
2047    $('caption').parent('table').addClass("figcaption");
2048
2049    // initialize posts list
2050    if (window.init_posts_list)
2051      window.init_posts_list();
2052
2053    // implmement disqus comment link
2054    $('.disqus-comment-count').click(function() {
2055      window.headroom_prevent_pin = true;
2056      $('#disqus_thread').toggleClass('hidden');
2057      if (!$('#disqus_thread').hasClass('hidden')) {
2058        var offset = $(this).offset();
2059        $(window).resize();
2060        $('html, body').animate({
2061          scrollTop: offset.top - 35
2062        });
2063      }
2064    });
2065  }
2066
2067  document.addEventListener('DOMContentLoaded', function() {
2068    if (is_downlevel_browser())
2069      init_downlevel();
2070    else
2071      window.addEventListener('WebComponentsReady', init_distill);
2072  });
2073
2074  </script>
2074
2075
2076  <style type="text/css">
2077  /* base variables */
2078
2079  /* Edit the CSS properties in this file to create a custom
2080     Distill theme. Only edit values in the right column
2081     for each row; values shown are the CSS defaults.
2082     To return any property to the default,
2083     you may set its value to: unset
2084     All rows must end with a semi-colon.                      */
2085
2086  /* Optional: embed custom fonts here with `@import`          */
2087  /* This must remain at the top of this file.                 */
2088
2089
2090
2091  html {
2092    /*-- Main font sizes --*/
2093    --title-size:      50px;
2094    --body-size:       1.06rem;
2095    --code-size:       14px;
2096    --aside-size:      12px;
2097    --fig-cap-size:    13px;
2098    /*-- Main font colors --*/
2099    --title-color:     #000000;
2100    --header-color:    rgba(0, 0, 0, 0.8);
2101    --body-color:      rgba(0, 0, 0, 0.8);
2102    --aside-color:     rgba(0, 0, 0, 0.6);
2103    --fig-cap-color:   rgba(0, 0, 0, 0.6);
2104    /*-- Specify custom fonts ~~~ must be imported above   --*/
2105    --heading-font:    sans-serif;
2106    --mono-font:       monospace;
2107    --body-font:       sans-serif;
2108    --navbar-font:     sans-serif;  /* websites + blogs only */
2109  }
2110
2111  /*-- ARTICLE METADATA --*/
2112  d-byline {
2113    --heading-size:    0.6rem;
2114    --heading-color:   rgba(0, 0, 0, 0.5);
2115    --body-size:       0.8rem;
2116    --body-color:      rgba(0, 0, 0, 0.8);
2117  }
2118
2119  /*-- ARTICLE TABLE OF CONTENTS --*/
2120  .d-contents {
2121    --heading-size:    18px;
2122    --contents-size:   13px;
2123  }
2124
2125  /*-- ARTICLE APPENDIX --*/
2126  d-appendix {
2127    --heading-size:    15px;
2128    --heading-color:   rgba(0, 0, 0, 0.65);
2129    --text-size:       0.8em;
2130    --text-color:      rgba(0, 0, 0, 0.5);
2131  }
2132
2133  /*-- WEBSITE HEADER + FOOTER --*/
2134  /* These properties only apply to Distill sites and blogs  */
2135
2136  .distill-site-header {
2137    --title-size:       18px;
2138    --text-color:       rgba(255, 255, 255, 0.8);
2139    --text-size:        15px;
2140    --hover-color:      white;
2141    --bkgd-color:       #0F2E3D;
2142  }
2143
2144  .distill-site-footer {
2145    --text-color:       rgba(255, 255, 255, 0.8);
2146    --text-size:        15px;
2147    --hover-color:      white;
2148    --bkgd-color:       #0F2E3D;
2149  }
2150
2151  /*-- Additional custom styles --*/
2152  /* Add any additional CSS rules below                      */
2153  </style>
2154  <style type="text/css">
2155  /* base variables */
2156
2157  /* Edit the CSS properties in this file to create a custom
2158     Distill theme. Only edit values in the right column
2159     for each row; values shown are the CSS defaults.
2160     To return any property to the default,
2161     you may set its value to: unset
2162     All rows must end with a semi-colon.                      */
2163
2164  /* Optional: embed custom fonts here with `@import`          */
2165  /* This must remain at the top of this file.                 */
2166
2167
2168
2169  html {
2170    /*-- Main font sizes --*/
2171    --title-size:      50px;
2172    --body-size:       1.06rem;
2173    --code-size:       14px;
2174    --aside-size:      12px;
2175    --fig-cap-size:    13px;
2176    /*-- Main font colors --*/
2177    --title-color:     #000000;
2178    --header-color:    rgba(0, 0, 0, 0.8);
2179    --body-color:      rgba(0, 0, 0, 0.8);
2180    --aside-color:     rgba(0, 0, 0, 0.6);
2181    --fig-cap-color:   rgba(0, 0, 0, 0.6);
2182    /*-- Specify custom fonts ~~~ must be imported above   --*/
2183    --heading-font:    sans-serif;
2184    --mono-font:       monospace;
2185    --body-font:       sans-serif;
2186    --navbar-font:     sans-serif;  /* websites + blogs only */
2187  }
2188
2189  /*-- ARTICLE METADATA --*/
2190  d-byline {
2191    --heading-size:    0.6rem;
2192    --heading-color:   rgba(0, 0, 0, 0.5);
2193    --body-size:       0.8rem;
2194    --body-color:      rgba(0, 0, 0, 0.8);
2195  }
2196
2197  /*-- ARTICLE TABLE OF CONTENTS --*/
2198  .d-contents {
2199    --heading-size:    18px;
2200    --contents-size:   13px;
2201  }
2202
2203  /*-- ARTICLE APPENDIX --*/
2204  d-appendix {
2205    --heading-size:    15px;
2206    --heading-color:   rgba(0, 0, 0, 0.65);
2207    --text-size:       0.8em;
2208    --text-color:      rgba(0, 0, 0, 0.5);
2209  }
2210
2211  /*-- WEBSITE HEADER + FOOTER --*/
2212  /* These properties only apply to Distill sites and blogs  */
2213
2214  .distill-site-header {
2215    --title-size:       18px;
2216    --text-color:       rgba(255, 255, 255, 0.8);
2217    --text-size:        15px;
2218    --hover-color:      white;
2219    --bkgd-color:       #908FB6;
2220    /*--bkgd-color:       #0F2E3D;*/
2221  }
2222
2223  .distill-site-footer {
2224    --text-color:       rgba(255, 255, 255, 0.8);
2225    --text-size:        12px;
2226    --hover-color:      white;
2227    --bkgd-color:       #908FB6;
2228  }
2229
2230  /*-- Additional custom styles --*/
2231  /* Add any additional CSS rules below                      */
2232  </style>
2233  <style type="text/css">
2234  /* base style */
2235
2236  /* FONT FAMILIES */
2237
2238  :root {
2239    --heading-default: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", Arial, sans-serif;
2240    --mono-default: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
2241    --body-default: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", Arial, sans-serif;
2242  }
2243
2244  body,
2245  .posts-list .post-preview p,
2246  .posts-list .description p {
2247    font-family: var(--body-font), var(--body-default);
2248  }
2249
2250  h1, h2, h3, h4, h5, h6,
2251  .posts-list .post-preview h2,
2252  .posts-list .description h2 {
2253    font-family: var(--heading-font), var(--heading-default);
2254  }
2255
2256  d-article div.sourceCode code,
2257  d-article pre code {
2258    font-family: var(--mono-font), var(--mono-default);
2259  }
2260
2261
2262  /*-- TITLE --*/
2263  d-title h1,
2264  .posts-list > h1 {
2265    color: var(--title-color, black);
2266  }
2267
2268  d-title h1 {
2269    font-size: var(--title-size, 50px);
2270  }
2271
2272  /*-- HEADERS --*/
2273  d-article h1,
2274  d-article h2,
2275  d-article h3,
2276  d-article h4,
2277  d-article h5,
2278  d-article h6 {
2279    color: var(--header-color, rgba(0, 0, 0, 0.8));
2280  }
2281
2282  /*-- BODY --*/
2283  d-article > p,  /* only text inside of <p> tags */
2284  d-article > ul, /* lists */
2285  d-article > ol {
2286    color: var(--body-color, rgba(0, 0, 0, 0.8));
2287    font-size: var(--body-size, 1.06rem);
2288  }
2289
2290
2291  /*-- CODE --*/
2292  d-article div.sourceCode code,
2293  d-article pre code {
2294    font-size: var(--code-size, 14px);
2295  }
2296
2297  /*-- ASIDE --*/
2298  d-article aside {
2299    font-size: var(--aside-size, 12px);
2300    color: var(--aside-color, rgba(0, 0, 0, 0.6));
2301  }
2302
2303  /*-- FIGURE CAPTIONS --*/
2304  figure .caption,
2305  figure figcaption,
2306  .figure .caption {
2307    font-size: var(--fig-cap-size, 13px);
2308    color: var(--fig-cap-color, rgba(0, 0, 0, 0.6));
2309  }
2310
2311  /*-- METADATA --*/
2312  d-byline h3 {
2313    font-size: var(--heading-size, 0.6rem);
2314    color: var(--heading-color, rgba(0, 0, 0, 0.5));
2315  }
2316
2317  d-byline {
2318    font-size: var(--body-size, 0.8rem);
2319    color: var(--body-color, rgba(0, 0, 0, 0.8));
2320  }
2321
2322  d-byline a,
2323  d-article d-byline a {
2324    color: var(--body-color, rgba(0, 0, 0, 0.8));
2325  }
2326
2327  /*-- TABLE OF CONTENTS --*/
2328  .d-contents nav h3 {
2329    font-size: var(--heading-size, 18px);
2330  }
2331
2332  .d-contents nav a {
2333    font-size: var(--contents-size, 13px);
2334  }
2335
2336  /*-- APPENDIX --*/
2337  d-appendix h3 {
2338    font-size: var(--heading-size, 15px);
2339    color: var(--heading-color, rgba(0, 0, 0, 0.65));
2340  }
2341
2342  d-appendix {
2343    font-size: var(--text-size, 0.8em);
2344    color: var(--text-color, rgba(0, 0, 0, 0.5));
2345  }
2346
2347  d-appendix d-footnote-list a.footnote-backlink {
2348    color: var(--text-color, rgba(0, 0, 0, 0.5));
2349  }
2350
2351  /*-- WEBSITE HEADER + FOOTER --*/
2352  .distill-site-header .title {
2353    font-size: var(--title-size, 18px);
2354    font-family: var(--navbar-font), var(--heading-default);
2355  }
2356
2357  .distill-site-header a,
2358  .nav-dropdown .nav-dropbtn {
2359    font-family: var(--navbar-font), var(--heading-default);
2360  }
2361
2362  .nav-dropdown .nav-dropbtn {
2363    color: var(--text-color, rgba(255, 255, 255, 0.8));
2364    font-size: var(--text-size, 15px);
2365  }
2366
2367  .distill-site-header a:hover,
2368  .nav-dropdown:hover .nav-dropbtn {
2369    color: var(--hover-color, white);
2370  }
2371
2372  .distill-site-header {
2373    font-size: var(--text-size, 15px);
2374    color: var(--text-color, rgba(255, 255, 255, 0.8));
2375    background-color: var(--bkgd-color, #0F2E3D);
2376  }
2377
2378  .distill-site-footer {
2379    font-size: var(--text-size, 15px);
2380    color: var(--text-color, rgba(255, 255, 255, 0.8));
2381    background-color: var(--bkgd-color, #0F2E3D);
2382  }
2383
2384  .distill-site-footer a:hover {
2385    color: var(--hover-color, white);
2386  }</style>
2387  <!--/radix_placeholder_distill-->
2388  
2388<script src="site_libs/header-attrs-2.16/header-attrs.js"></script>
2388
2389  
2389<script src="site_libs/popper-2.6.0/popper.min.js"></script>
2389
2390  <link href="site_libs/tippy-6.2.7/tippy.css" rel="stylesheet" />
2391  <link href="site_libs/tippy-6.2.7/tippy-light-border.css" rel="stylesheet" />
2392  
2392<script src="site_libs/tippy-6.2.7/tippy.umd.min.js"></script>
2392
2393  
2393<script src="site_libs/anchor-4.2.2/anchor.min.js"></script>
2393
2394  
2394<script src="site_libs/bowser-1.9.3/bowser.min.js"></script>
2394
2395  
2395<script src="site_libs/webcomponents-2.0.0/webcomponents.js"></script>
2395
2396  
2396<script src="site_libs/distill-2.2.21/template.v2.js"></script>
2396
2397  <!--radix_placeholder_site_in_header-->
2398  <!--/radix_placeholder_site_in_header-->
2399
2400
2401</head>
2402
2403<body>
2404
2405<!--radix_placeholder_front_matter-->
2406
2407<script id="distill-front-matter" type="text/json">
2408{"title":"Business Data Analysis and Interpretation","description":"Fall 2022 BUS 320 Syllabus","authors":[]}
2409</script>
2409
2410
2411<!--/radix_placeholder_front_matter-->
2412<!--radix_placeholder_navigation_before_body-->
2413<header class="header header--fixed" role="banner">
2414<nav class="distill-site-nav distill-site-header">
2415<div class="nav-left">
2416<a class="logo">
2417<img src="img/favicon.png" alt="Logo"/>
2418</a>
2419<a class='title' href='/'>Elizabeth Stanny</a>
2420<input id="distill-search" class="nav-search hidden" type="text" placeholder="Search..."/>
2421</div>
2422<div class="nav-right">
2423<a href='/'>Home</a>
2424<a href='/about'>About</a>
2425<div class="nav-dropdown">
2426<button class="nav-dropbtn">
2427Courses
2428 
2429<span class="down-arrow">&#x25BE;</span>
2430</button>
2431<div class="nav-dropdown-content">
2432<a href='/data-analysis-fa-22'>Data Analysis - Fall 2022</a>
2433<hr/>
2434<a href='/intermediate_accounting_sum'>Intermediate Accounting I- Summer 2022</a>
2435<hr/>
2436<a href='/intermediate_accounting_ii_sum'>Intermediate Accounting II - Summer 2022</a>
2437<hr/>
2438<a href='/financial-accounting-sp-22'>Financial Accounting - Spring 2022</a>
2439<hr/>
2440<a href='/data-analysis-sp-22'>Data Analysis - Spring 2022</a>
2441<hr/>
2442<a href='/slides'>BUS 320 Slides</a>
2443</div>
2444</div>
2445<a href='/advising'>Advising</a>
2446<a href="javascript:void(0);" class="nav-toggle">&#9776;</a>
2447</div>
2448</nav>
2449</header>
2450<!--/radix_placeholder_navigation_before_body-->
2451<!--radix_placeholder_site_before_body-->
2452<!--/radix_placeholder_site_before_body-->
2453
2454<div class="d-title">
2455<h1>Business Data Analysis and Interpretation</h1>
2456<!--radix_placeholder_categories-->
2457<!--/radix_placeholder_categories-->
2458<p><p>Fall 2022 BUS 320 Syllabus</p></p>
2459</div>
2460
2461
2462<div class="d-article">
2463<div class="d-contents d-contents-float">
2464<nav class="l-text toc figcaption" id="TOC">
2465<h3>Contents</h3>
2466<ul>
2467<li><a href="#contact-information" id="toc-contact-information">Contact information</a></li>
2468<li><a href="#class-meetings-in-person" id="toc-class-meetings-in-person">Class meetings in person</a></li>
2469<li><a href="#course-description" id="toc-course-description">Course description</a></li>
2470<li><a href="#prerequisites" id="toc-prerequisites">Prerequisites</a></li>
2471<li><a href="#learning-objectives" id="toc-learning-objectives">Learning objectives</a></li>
2472<li><a href="#course-materials" id="toc-course-materials">Course materials</a></li>
2473<li><a href="#schedule" id="toc-schedule">Schedule</a></li>
2474<li><a href="#grading" id="toc-grading">Grading</a></li>
2475<li><a href="#university-policies" id="toc-university-policies">University Policies</a></li>
2476<li><a href="#university-services" id="toc-university-services">University services</a></li>
2477<li><a href="#religious-observances" id="toc-religious-observances">Religious Observances</a></li>
2478<li><a href="#fires-andor-power-outages" id="toc-fires-andor-power-outages">Fires and/or power-outages</a></li>
2479<li><a href="#covid-19" id="toc-covid-19">COVID-19</a></li>
2480</ul>
2481</nav>
2482</div>
2483<p><em>Subject to revision (last updated: Aug 23, 2022)</em></p>
2484<h3 id="contact-information">Contact information</h3>
2485<ul>
2486<li>Instructor: Elizabeth Stanny, PhD</li>
2487<li>Email: <a href="mailto:[email protected]">[email protected]</a></li>
2488<li>Office: Wine Center 1016 <!-- - Office phone: 707-664-4287 --></li>
2489<li>Office hours
2490<ul>
2491<li>Mondays: 12 - 12:40 (in - person)<br />
2492</li>
2493<li>Wednesdays: 4 - 5 PM (on Zoom)</li>
2494<li>by appointment</li>
2495</ul></li>
2496</ul>
2497<h3 id="class-meetings-in-person">Class meetings in person</h3>
2498<ul>
2499<li>Section 1: Mondays 10- 11:50 AM</li>
2500<li>Section 2: Mondays 1 - 2:50 PM</li>
2501</ul>
2502<h3 id="course-description">Course description</h3>
2503<p>This is an applied course that builds upon knowledge acquired from lower-division statistics coursework. It exposes students to the research and data analysis practices executed in the business world. A focus of this course is on generating <strong>reproducible analyses</strong> using the R programming language.</p>
2504<h3 id="prerequisites">Prerequisites</h3>
2505<ul>
2506<li>Pre-business requirements</li>
2507<li>Proficiency in spreadsheet software</li>
2508</ul>
2509<h3 id="learning-objectives">Learning objectives</h3>
2510<ul>
2511<li>Determine question want to answer with data analysis</li>
2512<li>Extract, transform and load relevant data (ETL process)</li>
2513<li>Apply appropriate data analytic methods</li>
2514<li>Interpret and present the results</li>
2515</ul>
2516<h3 id="course-materials">Course materials</h3>
2517<ul>
2518<li>R/RStudio</li>
2519<li>Course site: <a href="https://stanny.moodlecloud.com"><strong>stanny.moodlecloud.com</strong></a>. If you are enrolled in the course, I will send you login information.
2520<ul>
2521<li>If you have any questions about the site, please ask <a href="mailto:[email protected]">me</a>.</li>
2522<li>Videos, notes, quizzes and other materials are posted on the site.</li>
2523</ul></li>
2524</ul>
2525<h3 id="schedule">Schedule</h3>
2526<div class="layout-chunk" data-layout="l-body">
2527<table>
2528<thead>
2529<tr class="header">
2530<th style="text-align: left;">Date</th>
2531<th style="text-align: left;">Topic</th>
2532<th style="text-align: left;"></th>
2533</tr>
2534</thead>
2535<tbody>
2536<tr class="odd">
2537<td style="text-align: left;">Aug 22</td>
2538<td style="text-align: left;">0: Introduction</td>
2539<td style="text-align: left;"></td>
2540</tr>
2541<tr class="even">
2542<td style="text-align: left;">Aug 29</td>
2543<td style="text-align: left;">1: Introduction/R/RStudio</td>
2544<td style="text-align: left;">due at 5 PM</td>
2545</tr>
2546<tr class="odd">
2547<td style="text-align: left;">Sep 12</td>
2548<td style="text-align: left;">2: R/RStudio and create a blog</td>
2549<td style="text-align: left;">due at 5 PM</td>
2550</tr>
2551<tr class="even">
2552<td style="text-align: left;">Sep 19</td>
2553<td style="text-align: left;">3: Data manipulation / descriptive analysis I</td>
2554<td style="text-align: left;">due at 5 PM</td>
2555</tr>
2556<tr class="odd">
2557<td style="text-align: left;">Sep 26</td>
2558<td style="text-align: left;">4: Reading and writing data</td>
2559<td style="text-align: left;">due at 5 PM</td>
2560</tr>
2561<tr class="even">
2562<td style="text-align: left;">Oct 3</td>
2563<td style="text-align: left;">5: Data manipulation / descriptive analysis II</td>
2564<td style="text-align: left;">due at 5 PM</td>
2565</tr>
2566<tr class="odd">
2567<td style="text-align: left;">Oct 10</td>
2568<td style="text-align: left;">6: Data manipulation / joining data</td>
2569<td style="text-align: left;">due at 5 PM</td>
2570</tr>
2571<tr class="even">
2572<td style="text-align: left;">Oct 17</td>
2573<td style="text-align: left;">
25737: Exploratory analysis / data visualization I</td>
2574<td style="text-align: left;">due at 5 PM</td>
2575</tr>
2576<tr class="odd">
2577<td style="text-align: left;">Oct 24</td>
2578<td style="text-align: left;">8: Exploratory analysis / data visualization II</td>
2579<td style="text-align: left;">due at 5 PM</td>
2580</tr>
2581<tr class="even">
2582<td style="text-align: left;">Oct 31</td>
2583<td style="text-align: left;">9: Data visualization / storytelling</td>
2584<td style="text-align: left;">due at 5 PM</td>
2585</tr>
2586<tr class="odd">
2587<td style="text-align: left;">Nov 7</td>
2588<td style="text-align: left;">10: Machine learning</td>
2589<td style="text-align: left;">due at 5 PM</td>
2590</tr>
2591<tr class="even">
2592<td style="text-align: left;">Nov 14</td>
2593<td style="text-align: left;">11: Inference / sampling</td>
2594<td style="text-align: left;">due at 5 PM</td>
2595</tr>
2596<tr class="odd">
2597<td style="text-align: left;">Nov 21</td>
2598<td style="text-align: left;">12: Inference / bootstrapping</td>
2599<td style="text-align: left;">due at 5 PM</td>
2600</tr>
2601<tr class="even">
2602<td style="text-align: left;">Nov 28</td>
2603<td style="text-align: left;">13: Inference / hypothesis testing</td>
2604<td style="text-align: left;">due at 5 PM</td>
2605</tr>
2606<tr class="odd">
2607<td style="text-align: left;">Dec 5</td>
2608<td style="text-align: left;">14: Project</td>
2609<td style="text-align: left;">due at 5 PM</td>
2610</tr>
2611<tr class="even">
2612<td style="text-align: left;">Dec 12</td>
2613<td style="text-align: left;">15: Project</td>
2614<td style="text-align: left;">due at 5 PM</td>
2615</tr>
2616</tbody>
2617</table>
2618</div>
2619<h3 id="grading">Grading</h3>
2620<p>There are 1070 possible points in the course (70 are extra credit points). Your grade will be determined by your total points:</p>
2621<div class="layout-chunk" data-layout="l-body">
2622<table>
2623<thead>
2624<tr class="header">
2625<th style="text-align: left;">Grade</th>
2626<th style="text-align: right;">Points</th>
2627</tr>
2628</thead>
2629<tbody>
2630<tr class="odd">
2631<td style="text-align: left;">A</td>
2632<td style="text-align: right;">950</td>
2633</tr>
2634<tr class="even">
2635<td style="text-align: left;">A-</td>
2636<td style="text-align: right;">900</td>
2637</tr>
2638<tr class="odd">
2639<td style="text-align: left;">B+</td>
2640<td style="text-align: right;">870</td>
2641</tr>
2642<tr class="even">
2643<td style="text-align: left;">B</td>
2644<td style="text-align: right;">830</td>
2645</tr>
2646<tr class="odd">
2647<td style="text-align: left;">B-</td>
2648<td style="text-align: right;">800</td>
2649</tr>
2650<tr class="even">
2651<td style="text-align: left;">C+</td>
2652<td style="text-align: right;">770</td>
2653</tr>
2654<tr class="odd">
2655<td style="text-align: left;">C</td>
2656<td style="text-align: right;">730</td>
2657</tr>
2658<tr class="even">
2659<td style="text-align: left;">C-</td>
2660<td style="text-align: right;">700</td>
2661</tr>
2662<tr class="odd">
2663<td style="text-align: left;">D+</td>
2664<td style="text-align: right;">670</td>
2665</tr>
2666<tr class="even">
2667<td style="text-align: left;">D</td>
2668<td style="text-align: right;">600</td>
2669</tr>
2670</tbody>
2671</table>
2672</div>
2673<div class="layout-chunk" data-layout="l-body">
2674<table>
2675<thead>
2676<tr class="header">
2677<th style="text-align: left;">Activity</th>
2678<th style="text-align: right;">Total Points</th>
2679</tr>
2680</thead>
2681<tbody>
2682<tr class="odd">
2683<td style="text-align: left;">Quizzes</td>
2684<td style="text-align: right;">390</td>
2685</tr>
2686<tr class="even">
2687<td style="text-align: left;">Assignments</td>
2688<td style="text-align: right;">330</td>
2689</tr>
2690<tr class="odd">
2691<td style="text-align: left;">Attendance</td>
2692<td style="text-align: right;">150</td>
2693</tr>
2694<tr class="even">
2695<td style="text-align: left;">Final Project</td>
2696<td style="text-align: right;">200</td>
2697</tr>
2698</tbody>
2699</table>
2700</div>
2701<p><strong>In general late submissions will not be accepted.</strong> If you need an extension because of hardships related to COVID-19 and other illnesses, mental health challenges and family concerns, please let me know as soon as possible and provide documentation if possible. <strong>The most important thing that you can do is communicate with me so I can work with you to determine what options there are for you to succeed.</strong></p>
2702<h3 id="university-policies">University Policies</h3>
2703<p>There are important <a href="https://catalog.sonoma.edu/content.php?catoid=8&amp;navoid=926">University policies</a> that you should be aware of, such as the add/drop policy; <a href="https://policies.sonoma.edu/policies/cheating-and-plagiarism">cheating and plagiarism policy</a>, grade appeal procedures; accommodations for students with disabilities and the diversity vision statement.</p>
2704<h4 id="dropping-and-adding">Dropping and Adding</h4>
2705<p>Students are responsible for understanding the policies and procedures about add/drops, academic renew
2705al, etc. <a href="https://registrar.sonoma.edu/how-register#howto">How to Register</a> has step-by-step instructions and important deadlines and penalties for adding and dropping classes.</p>
2706<h4 id="campus-policy-on-disability-access-for-students">Campus Policy on Disability Access for Students</h4>
2707<p>If you are a student with a disability, and think you may need academic accommodations, please contact Disability Services for Students (DSS), located in Salazar Hall, Room 1049, Voice: (707) 664-2677, TTY/TDD: (707) 664-2958, as early as possible in order to avoid a delay in receiving accommodation services. Use of DSS services, including testing accommodations, requires prior authorization by DSS in compliance with university policies and procedures. See SSU’s policy on <a href="https://policies.sonoma.edu/policies/disability-access-students">Disability Access for Students</a>.</p>
2708<h4 id="academic-integrity">Academic Integrity</h4>
2709<p>Students should be familiar with the University’s <a href="https://policies.sonoma.edu/policies/cheating-and-plagiarism">Cheating and Plagiarism Policy</a>. Your own commitment to learning, as evidenced by your enrollment at Sonoma State University and the University’s policy, require you to be honest in all your academic coursework. Instances of academic dishonesty will not be tolerated. Cheating on exams or plagiarism (presenting the work of another as your own, or the use of another person’s ideas without giving proper credit) will result in a failing grade and sanctions by the University. For this class, all assignments are to be completed by the individual student unless otherwise specified.</p>
2710<h4 id="recording">Recording</h4>
2711<p>Students may not record (audio or video) in this class except in accordance with ADA accommodations. Any recordings made in connection with a disability accommodation are for the student’s personal academic use only and may not be distributed in any manner to any other individual.</p>
2712<h3 id="university-services">University services</h3>
2713<h4 id="counseling-and-psychological-services-caps">Counseling and Psychological Services (CAPS)</h4>
2714<p>CAPS is a unit of the division of Student Affairs of Sonoma State University. CAPS offers confidential counseling to students experiencing personal problems that interfere with their academic progress, career or well-being. The <a href="https://caps.sonoma.edu/">CAPS website</a> provides information only. If you would like to talk with someone or make an appointment, please call (707) 664-2153 between 8 a.m. – 5:00 p.m., Monday-Friday during the academic year.</p>
2715<h4 id="basic-needs">Basic Needs</h4>
2716<p>We learn as whole people. To learn effectively, you must have basic security: a roof over your head, a safe place to sleep, enough food to eat. If you are having trouble with any of those things, please visit <a href="https://studentaffairs.sonoma.edu/basicneeds">Student Affairs’ Basic Needs webpage</a> for resources to support your well-being both inside and outside the classroom.</p>
2717<h3 id="religious-observances">Religious Observances</h3>
2718<p>The observance of religious holidays (activities observed by a religious group of which a student is a member) and cultural practices are an important reflection of diversity. As your instructor, I am committed to providing equivalent educational opportunities to students of all belief systems. At the beginning of the semester, you should review the course requirements to identify foreseeable conflicts with assignments, exams, or other required attendance. If at all possible, please contact me (your course coordinator/s) within the first two weeks of the first class meeting to allow time for us to discuss and make fair and reasonable adjustments to the schedule and/or tasks.</p>
2719<h3 id="fires-andor-power-outages">Fires and/or power-outages</h3>
2720<p>Sonoma County has seen an increase in fire activity and public safety power outages that have had an impact on campus operations intermittently since 2017. In the event that we experience a similar disruption to our course this semester, I will communicate with class via email within 24 hours of the disruption around potential changes to assignments, due dates, or readings. If the disruption continues for more than one week of our regular class meetings, I will subsequently follow up on a weekly basis. Please sign up to receive university emergency alerts by texting SSUALERTS to 67283.</p>
2721<h3 id="covid-19">COVID-19</h3>
2722<p>In accordance with state and county guidelines, masking in SSU instructional spaces is strongly recommended in the Fall 2022 semester. Any changes regarding campus COVID-19 requirements or policies will be communicated to the campus community via email.</p>
2723<div class="sourceCode" id="cb1"><pre class="sourceCode r distill-force-highlighting-css"><code class="sourceCode r"></code></pre></div>
2724<!--radix_placeholder_article_footer-->
2725<!--/radix_placeholder_article_footer-->
2726</div>
2727
2728<div class="d-appendix">
2729</div>
2730
2731
2732<!--radix_placeholder_site_after_body-->
2733<!--/radix_placeholder_site_after_body-->
2734<!--radix_placeholder_appendices-->
2735<div class="appendix-bottom"></div>
2736<!--/radix_placeholder_appendices-->
2737<!--radix_placeholder_navigation_after_body-->
2738<div class="distill-site-nav distill-site-footer">
2739<p>© Copyright 2021-2022 Elizabeth Stanny. Website template is by <a
2740href="https://distill.pub/about/">Distill.pub</a> and <a
2741href="https://www.rstudio.com">RStudio, Inc</a>.</p>
2742</div>
2743<!--/radix_placeholder_navigation_after_body-->
2744
2745
2746</body>
2747
2748</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.