generated from beachemu/kga320_workshop_1
-
Notifications
You must be signed in to change notification settings - Fork 0
/
workshop_3.html
886 lines (805 loc) · 96.2 KB
/
workshop_3.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
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="pandoc" />
<meta name="author" content="KGA320: Our Changing Climate" />
<meta name="progressive" content="false" />
<meta name="allow-skip" content="false" />
<meta name="learnr-version-prerender" content="0.11.5" />
<title>Observations III</title>
<!-- header-includes START -->
<!-- HEAD_CONTENT -->
<!-- header-includes END -->
<!-- HEAD_CONTENT -->
<!-- highlightjs -->
<style type="text/css">code{white-space: pre;}</style>
<style type="text/css">
pre:not([class]) {
background-color: white;
}
</style>
<script type="text/javascript">
if (window.hljs) {
hljs.configure({languages: []});
hljs.initHighlightingOnLoad();
if (document.readyState && document.readyState === "complete") {
window.setTimeout(function() { hljs.initHighlighting(); }, 0);
}
}
</script>
<!-- taken from https://github.com/rstudio/rmarkdown/blob/de8a9c38618903627ca509f5401d50a0876079f7/inst/rmd/h/default.html#L293-L343 -->
<!-- tabsets -->
<style type="text/css">
.tabset-dropdown > .nav-tabs {
display: inline-table;
max-height: 500px;
min-height: 44px;
overflow-y: auto;
border: 1px solid #ddd;
border-radius: 4px;
}
.tabset-dropdown > .nav-tabs > li.active:before {
content: "";
font-family: 'Glyphicons Halflings';
display: inline-block;
padding: 10px;
border-right: 1px solid #ddd;
}
.tabset-dropdown > .nav-tabs.nav-tabs-open > li.active:before {
content: "";
border: none;
}
.tabset-dropdown > .nav-tabs.nav-tabs-open:before {
content: "";
font-family: 'Glyphicons Halflings';
display: inline-block;
padding: 10px;
border-right: 1px solid #ddd;
}
.tabset-dropdown > .nav-tabs > li.active {
display: block;
}
.tabset-dropdown > .nav-tabs > li > a,
.tabset-dropdown > .nav-tabs > li > a:focus,
.tabset-dropdown > .nav-tabs > li > a:hover {
border: none;
display: inline-block;
border-radius: 4px;
background-color: transparent;
}
.tabset-dropdown > .nav-tabs.nav-tabs-open > li {
display: block;
float: none;
}
.tabset-dropdown > .nav-tabs > li {
display: none;
}
</style>
<!-- end tabsets -->
</head>
<body>
<a class='sr-only sr-only-focusable visually-hidden-focusable' href='#learnr-tutorial-content'>Skip to Tutorial Content</a>
<div class="pageContent band">
<main class="bandContent page">
<article class="topics" id="learnr-tutorial-content">
<div id="section-introduction-moving-back-in-time"
class="section level2">
<h2>Introduction: Moving Back in Time</h2>
<p>Welcome to workshop 3! Great job making it this far. This week will
be short on content, covering new concepts briefly, giving you time to
catch up and focus on <strong>Assessment Portfolio Task A</strong>. We
are finally ready for trend analysis! But first, a recap.</p>
<div id="section-recap-of-last-week" class="section level3">
<h3>Recap of last week</h3>
<p>In <a href="https://kga320-utas.shinyapps.io/workshop_2/">workshop
2</a>, we covered the tools used to make data work for us:</p>
<ul>
<li><strong>Data Preparation</strong>: Using functions like
<code>cut</code> and those provided in dplyr to simplify high-resolution
data.</li>
<li><strong>Comparative Analysis</strong>: Plotting different time
periods, and comparing them with t-tests.</li>
<li><strong>Correlation</strong>: Calculating correlation between
variables with <code>cor</code> and visualising them with scatter
plots.</li>
<li><strong>Advanced Visualisations</strong>: Using
<code>geom_smooth</code> to visualise trends in a time series.</li>
</ul>
<p>This is a great week to catch up on the first two workshops if you
need to. Using dplyr will be core to trend analysis in this workshop!
We’ll first load in the data needed, including extra data sets you will
analyse in the exercises:</p>
<div class="tutorial-exercise" data-label="start" data-completion="1"
data-diagnostics="1" data-startover="1" data-lines="0"
data-pipe="|>">
<pre class="text"><code># Setup R Environment.
library(tidyverse) # Includes ggplot2 and dplyr.
library(learnr)
library(zoo)
fix <- function(df) {
df <- separate(df, time, c('year', 'month', 'day'), sep = "-",remove = FALSE) # Splits date into columns for year, month, and day.
df$year <- as.numeric(df$year) # Make sure R treats year as a number
df$month <- as.numeric(df$month) # Make sure R treats year as a number
df$day <- as.numeric(df$day) # Make sure R treats year as a number
return(df)
}
barossa_data <- read.csv("data/barossa_1951-2014.csv") %>% fix()
# Observational data
north_data <- read.csv("data/monsoonal_north_burdekin_1951-2014.csv") %>% fix()
eastcoast_data <- read.csv("data/east_coast_north_coast_1951-2014.csv") %>% fix()
murray_data <- read.csv("data/murray_basin_riverina_1951-2014.csv") %>% fix()
tas_data <- read.csv("data/southern_slopes_south_1951-2014.csv") %>% fix()
# Drought data
north_paleo <- read.csv("data/monsoonal_north_burdekin_drought_1400-2012.csv") %>% fix()
eastcoast_paleo <- read.csv("data/east_coast_north_coast_drought_1400-2012.csv") %>% fix()
murray_paleo <- read.csv("data/murray_basin_riverina_drought_1400-2012.csv") %>% fix()
tas_paleo <- read.csv("data/southern_slopes_south_drought_1400-2012.csv") %>% fix()</code></pre>
<script type="application/json" data-ui-opts="1">{"engine":"r","has_checker":false,"caption":"<span data-i18n=\"text.enginecap\" data-i18n-opts=\"{"engine":"R"}\">R Code<\/span>"}</script>
</div>
</div>
<div id="section-linear-models" class="section level3">
<h3>Linear models</h3>
<p><strong>Linear regression</strong> is a powerful statistical tool
with a simple premise. Consider a scatter plot of temperature over time.
Linear regression will draw a straight line through that scatter plot
that best follows the general trend of the scattered points. In this
case, time is an <strong>independent response variable</strong> that
explains a variation in the <strong>dependent explanatory
variable</strong>, temperature. With these two variables, we have
constructed a <strong>linear model</strong>.</p>
<p>We’ve already seen this with <code>geom_smooth</code>, but linear
regression extends beyond just the drawn line. A complete model can
incorporate many independent variables and comes with statistics that
help to determine how useful the regression is in explaining real-world
phenomena. If you were doing an undergraduate in statistics, you would
spend semesters exploring everything that can be done with linear
regression. We only have a few workshops, so we’ll keep it simple!</p>
<p>In R, linear models are built using the function <code>lm</code>.
Let’s use dplyr to build a data frame with yearly averages for its
variables and build a linear model where precipitation is the response
variable, while year and average maximum daily temperature are the
explanatory variables. We will then print the details for this linear
model with the function <code>summary</code>.</p>
<div class="tutorial-exercise" data-label="lm" data-completion="1"
data-diagnostics="1" data-startover="1" data-lines="0"
data-pipe="|>">
<pre class="text"><code># Create a yearly average data frame.
barossa_yearly <- barossa_data %>%
group_by(year) %>%
summarise(
mean_tasmax = mean(tasmax),
mean_tasmin = mean(tasmin),
mean_pr = mean(pr)
)
# Construct a linear model using lm.
model <- lm(mean_pr ~ year + mean_tasmax, data = barossa_yearly)
# Examine the constructed model using summary.
summary(model)</code></pre>
<script type="application/json" data-ui-opts="1">{"engine":"r","has_checker":false,"caption":"<span data-i18n=\"text.enginecap\" data-i18n-opts=\"{"engine":"R"}\">R Code<\/span>"}</script>
</div>
<p>We can see we define the model in <code>lm</code> with a form that
looks like
<code>response_variable ~ explanatory_variable_1 + explanatory_variable_2</code>.
The output of <code>summary(model)</code> is complicated, and we don’t
need all of it. Here are the key values to inform your analysis:</p>
<ol style="list-style-type: decimal">
<li><strong>Coefficients</strong>: This table gives the strength of the
relationship between precipitation and explanatory variables under the
estimate column and the t-test results for that relationship under
<code>Pr(>|t|)</code>. The stars next to each row are a good quick
indicator of significance. We can see that the <code>year</code> has a
statistically significant relationship in this model, but the
coefficient is quite small at 0.004818. <code>mean_tasmax</code> is more
significant, and shows a stronger negative correlation.</li>
<li><strong>Multiple R-Squared</strong>: This value gives a percentage
value associated with how much the scattered data points fit tightly
around the constructed lines of our linear model. This model has an
R-squared of 0.5295, so about 53% of the variability in mean
precipitation for a year can be explained by the mean max temperature
for the year, and the year itself. As long as the R-squared isn’t very
low, the model should be OK, so this value is fine.</li>
<li><strong>p-value</strong>: An overall measure of statistical
significance for the model. It is very small for this model, so there is
some statistical significance to the relationships we are
examining.</li>
</ol>
<p>This model isn’t perfect. Remember last week how we used
<code>cor</code> to measure correlations between variables? We know that
temperature and time are correlated, and we use both in the model above.
This goes against some assumptions built into linear regression and can
make interpretations messy. Try removing <code>year</code> and
<code>mean_tasmax</code> from the model and see what happens to see how
things can get messy!</p>
<p>In your analysis, consider the relationships you want to consider and
how you will show them. Should you construct separate linear models for
different variables? Or use multiple variables in a model? Or calculate
new variables combining those provided? There are many ways to go about
this, and no approach is necessarily better, so go with what makes sense
to you! The goal for now is to be able to explain the choices you make,
and to match your models to visualisations that can show your
findings.</p>
</div>
<div id="section-long-term-trend-analysis" class="section level3">
<h3>Long-term trend analysis</h3>
<p>We’ve covered a few methods to better account for a longer-term
change rather than day-to-day variability. One final method we will
cover is a <strong>rolling mean</strong>. A rolling mean for temperature
for a given year is the average of the temperature over a long time
period extending past just the year. This is a key measure in climate
science. <a
href="https://www.bbc.com/future/article/20231130-climate-crisis-the-15c-global-warming-threshold-explained">For
example, targets for global warming are based on the rolling
mean</a>.</p>
<p>Calculating the rolling mean in R is very easy, and all the methods
we have provided for time series work just the same:</p>
<div class="tutorial-exercise" data-label="rolling" data-completion="1"
data-diagnostics="1" data-startover="1" data-lines="0"
data-pipe="|>">
<pre class="text"><code># Calculate the rolling mean of precipitation in the Barossa Valley.
barossa_yearly$rolling_mean_pr <- rollmean(barossa_yearly$mean_pr, k = 10, fill = NA)
# Plot the rolling mean for precipitation.
ggplot(barossa_yearly, aes(x = year, y = rolling_mean_pr)) +
geom_point() +
geom_line() +
ggtitle("10-year average precipitation 1950s to 2010s") +
xlab("Year") + ylab("Precipitation (mm)") +
theme_minimal()</code></pre>
<script type="application/json" data-ui-opts="1">{"engine":"r","has_checker":false,"caption":"<span data-i18n=\"text.enginecap\" data-i18n-opts=\"{"engine":"R"}\">R Code<\/span>"}</script>
</div>
<p>Try changing to the yearly <code>mean_pr</code>. Notice how the
rolling mean gives a plot that is “smoother”, it is easier to see any
long term trends that may be ocurring over long time spans.</p>
</div>
</div>
<div id="section-workshop-paleoclimatology" class="section level2">
<h2>Workshop: Paleoclimatology</h2>
<div id="section-summary-of-introduction" class="section level3">
<h3>Summary of introduction</h3>
<p>This week, there are only a few new concepts to cover; it’s time to
focus on writing a report!</p>
<ul>
<li><strong>Linear Regression</strong>: We can analyse trends by
constructing linear models. We do this in R with the <code>lm</code> and
<code>summary</code> functions.</li>
<li><strong>Rolling Means</strong>: Long-term trends can be represented
by considering means taken over wide time periods. This can be done in R
with the <code>rollmean</code> function.</li>
</ul>
</div>
<div id="section-exercises" class="section level3">
<h3>Exercises</h3>
<p>This week, we will jump straight into coding. This should give you
time to catch up and make plots for your portfolio!</p>
<blockquote>
<p>🔥 <strong>Important:</strong> You cannot save your work on this
webpage. If you create something you want to keep, save it to your
computer!</p>
</blockquote>
<blockquote>
<p>📊 <strong>Assessment Portfolio Task A</strong>: You have just over a
week to complete the first part of your portfolio for these workshops.
Use the time you have to compile your findings.</p>
</blockquote>
<div id="section-integrating-paleoclimatology" class="section level4">
<h4>Integrating paleoclimatology</h4>
<p>We have included an extra dataset in this workshop that you can use
to find long-term trends in climate based on paleoclimatology. You have
the tools now to analyse data frames. Use everything we’ve learned over
the past three workshops to examine the past data in your region for any
trends.</p>
<p>You may want to try:</p>
<ul>
<li>Exploring the general structure of the data set with
<code>str</code>.</li>
<li>Create violin or boxplots of the data for different time
periods.</li>
<li>Use <code>lm</code> and relevant plots to show trends over
time.</li>
<li>Compare the overlap period between this data set and the
observational period.</li>
</ul>
<div class="tutorial-exercise" data-label="ex-drought"
data-completion="1" data-diagnostics="1" data-startover="1"
data-lines="0" data-pipe="|>">
<pre class="text"><code># Plot drought index.</code></pre>
<script type="application/json" data-ui-opts="1">{"engine":"r","has_checker":false,"caption":"<span data-i18n=\"text.enginecap\" data-i18n-opts=\"{"engine":"R"}\">R Code<\/span>"}</script>
</div>
</div>
<div id="section-creating-linear-models" class="section level4">
<h4>Creating linear models</h4>
<p>Now, it’s time to build linear models of your data. Below, use
<code>lm</code> and <code>summary</code> to conduct linear regression on
your time series. Remember to use dplyr and make rolling means to
simplify your data for better analysis! Make plots to show linear
relationships that you find to be relevant, and make notes for your
portfolio.</p>
<div class="tutorial-exercise" data-label="ex-lm" data-completion="1"
data-diagnostics="1" data-startover="1" data-lines="0"
data-pipe="|>">
<pre class="text"><code># Process your data using dplyr and rollmean
# Use lm and summary to analyse climate trends over time.
# Plot any relevant trends found in your linear models. geom_smooth is good for this!</code></pre>
<script type="application/json" data-ui-opts="1">{"engine":"r","has_checker":false,"caption":"<span data-i18n=\"text.enginecap\" data-i18n-opts=\"{"engine":"R"}\">R Code<\/span>"}</script>
</div>
</div>
</div>
<div id="section-conclusion" class="section level3">
<h3>Conclusion</h3>
<p>Finishing this workshop marks the halfway point for the workshops
focussing on R. Congratulations on making it this far! Next week we will
begin looking to future climates, but for now, take the time to polish
your work for <strong>Assessment Portfolio Task A</strong>. Give
yourself a pat on the back; these first three weeks are the heaviest for
learning to use R. For the next three workshops we will mostly apply
what you have learnt!
<script type="application/shiny-prerendered" data-context="server-start">
# Setup R environment
library(tidyverse) # Includes ggplot2 and dplyr.
library(learnr)
library(zoo)
fix <- function(df) {
df <- separate(df, time, c('year', 'month', 'day'), sep = "-",remove = FALSE) # Splits date into columns for year, month, and day.
df$year <- as.numeric(df$year) # Make sure R treats year as a number
df$month <- as.numeric(df$month) # Make sure R treats year as a number
df$day <- as.numeric(df$day) # Make sure R treats year as a number
return(df)
}
barossa_data <- read.csv("data/barossa_1951-2014.csv") %>% fix()
# Observational data
north_data <- read.csv("data/monsoonal_north_burdekin_1951-2014.csv") %>% fix()
eastcoast_data <- read.csv("data/east_coast_north_coast_1951-2014.csv") %>% fix()
murray_data <- read.csv("data/murray_basin_riverina_1951-2014.csv") %>% fix()
tas_data <- read.csv("data/southern_slopes_south_1951-2014.csv") %>% fix()
# Drought data
north_paleo <- read.csv("data/monsoonal_north_burdekin_drought_1400-2012.csv") %>% fix()
eastcoast_paleo <- read.csv("data/east_coast_north_coast_drought_1400-2012.csv") %>% fix()
murray_paleo <- read.csv("data/murray_basin_riverina_drought_1400-2012.csv") %>% fix()
tas_paleo <- read.csv("data/southern_slopes_south_drought_1400-2012.csv") %>% fix()
# Future data
north_ssp126_2030 <- read.csv("data/monsoonal_north_burdekin_ssp126_2030-2049.csv") %>% fix()
north_ssp126_2060 <- read.csv("data/monsoonal_north_burdekin_ssp126_2060-2079.csv") %>% fix()
north_ssp370_2030 <- read.csv("data/monsoonal_north_burdekin_ssp370_2030-2049.csv") %>% fix()
north_ssp370_2060 <- read.csv("data/monsoonal_north_burdekin_ssp370_2060-2079.csv") %>% fix()
eastcoast_ssp126_2030 <- read.csv("data/east_coast_north_coast_ssp126_2030-2049.csv") %>% fix()
eastcoast_ssp126_2060 <- read.csv("data/east_coast_north_coast_ssp126_2060-2079.csv") %>% fix()
eastcoast_ssp370_2030 <- read.csv("data/east_coast_north_coast_ssp370_2030-2049.csv") %>% fix()
eastcoast_ssp370_2060 <- read.csv("data/east_coast_north_coast_ssp370_2060-2079.csv") %>% fix()
murray_ssp126_2030 <- read.csv("data/murray_basin_riverina_ssp126_2030-2049.csv") %>% fix()
murray_ssp126_2060 <- read.csv("data/murray_basin_riverina_ssp126_2060-2079.csv") %>% fix()
murray_ssp370_2030 <- read.csv("data/murray_basin_riverina_ssp370_2030-2049.csv") %>% fix()
murray_ssp370_2060 <- read.csv("data/murray_basin_riverina_ssp370_2060-2079.csv") %>% fix()
tas_ssp126_2030 <- read.csv("data/southern_slopes_south_ssp126_2030-2049.csv") %>% fix()
tas_ssp126_2060 <- read.csv("data/southern_slopes_south_ssp126_2060-2079.csv") %>% fix()
tas_ssp370_2030 <- read.csv("data/southern_slopes_south_ssp370_2030-2049.csv") %>% fix()
tas_ssp370_2060 <- read.csv("data/southern_slopes_south_ssp370_2060-2079.csv") %>% fix()
</script>
<script type="application/shiny-prerendered" data-context="server">
learnr:::register_http_handlers(session, metadata = NULL)
</script>
<script type="application/shiny-prerendered" data-context="server">
learnr:::prepare_tutorial_state(session)
</script>
<script type="application/shiny-prerendered" data-context="server">
learnr:::i18n_observe_tutorial_language(input, session)
</script>
<script type="application/shiny-prerendered" data-context="server">
session$onSessionEnded(function() {
learnr:::event_trigger(session, "session_stop")
})
</script>
<script type="application/shiny-prerendered" data-context="server">
`tutorial-exercise-start-result` <- learnr:::setup_exercise_handler(reactive(req(input$`tutorial-exercise-start-code-editor`)), session)
output$`tutorial-exercise-start-output` <- renderUI({
`tutorial-exercise-start-result`()
})
</script>
<script type="application/shiny-prerendered" data-context="server">
learnr:::store_exercise_cache(structure(list(label = "start", global_setup = structure(c("# Setup R environment",
"library(tidyverse) # Includes ggplot2 and dplyr.", "library(learnr)",
"library(zoo)", "", "fix <- function(df) {", " df <- separate(df, time, c('year', 'month', 'day'), sep = \"-\",remove = FALSE) # Splits date into columns for year, month, and day.",
" df$year <- as.numeric(df$year) # Make sure R treats year as a number",
" df$month <- as.numeric(df$month) # Make sure R treats year as a number",
" df$day <- as.numeric(df$day) # Make sure R treats year as a number",
" return(df)", "}", "", "barossa_data <- read.csv(\"data/barossa_1951-2014.csv\") %>% fix()",
"", "# Observational data", "north_data <- read.csv(\"data/monsoonal_north_burdekin_1951-2014.csv\") %>% fix()",
"eastcoast_data <- read.csv(\"data/east_coast_north_coast_1951-2014.csv\") %>% fix()",
"murray_data <- read.csv(\"data/murray_basin_riverina_1951-2014.csv\") %>% fix()",
"tas_data <- read.csv(\"data/southern_slopes_south_1951-2014.csv\") %>% fix()",
"", "# Drought data", "north_paleo <- read.csv(\"data/monsoonal_north_burdekin_drought_1400-2012.csv\") %>% fix()",
"eastcoast_paleo <- read.csv(\"data/east_coast_north_coast_drought_1400-2012.csv\") %>% fix()",
"murray_paleo <- read.csv(\"data/murray_basin_riverina_drought_1400-2012.csv\") %>% fix()",
"tas_paleo <- read.csv(\"data/southern_slopes_south_drought_1400-2012.csv\") %>% fix()",
"", "# Future data", "north_ssp126_2030 <- read.csv(\"data/monsoonal_north_burdekin_ssp126_2030-2049.csv\") %>% fix()",
"north_ssp126_2060 <- read.csv(\"data/monsoonal_north_burdekin_ssp126_2060-2079.csv\") %>% fix()",
"north_ssp370_2030 <- read.csv(\"data/monsoonal_north_burdekin_ssp370_2030-2049.csv\") %>% fix()",
"north_ssp370_2060 <- read.csv(\"data/monsoonal_north_burdekin_ssp370_2060-2079.csv\") %>% fix()",
"eastcoast_ssp126_2030 <- read.csv(\"data/east_coast_north_coast_ssp126_2030-2049.csv\") %>% fix()",
"eastcoast_ssp126_2060 <- read.csv(\"data/east_coast_north_coast_ssp126_2060-2079.csv\") %>% fix()",
"eastcoast_ssp370_2030 <- read.csv(\"data/east_coast_north_coast_ssp370_2030-2049.csv\") %>% fix()",
"eastcoast_ssp370_2060 <- read.csv(\"data/east_coast_north_coast_ssp370_2060-2079.csv\") %>% fix()",
"murray_ssp126_2030 <- read.csv(\"data/murray_basin_riverina_ssp126_2030-2049.csv\") %>% fix()",
"murray_ssp126_2060 <- read.csv(\"data/murray_basin_riverina_ssp126_2060-2079.csv\") %>% fix()",
"murray_ssp370_2030 <- read.csv(\"data/murray_basin_riverina_ssp370_2030-2049.csv\") %>% fix()",
"murray_ssp370_2060 <- read.csv(\"data/murray_basin_riverina_ssp370_2060-2079.csv\") %>% fix()",
"tas_ssp126_2030 <- read.csv(\"data/southern_slopes_south_ssp126_2030-2049.csv\") %>% fix()",
"tas_ssp126_2060 <- read.csv(\"data/southern_slopes_south_ssp126_2060-2079.csv\") %>% fix()",
"tas_ssp370_2030 <- read.csv(\"data/southern_slopes_south_ssp370_2030-2049.csv\") %>% fix()",
"tas_ssp370_2060 <- read.csv(\"data/southern_slopes_south_ssp370_2060-2079.csv\") %>% fix()"
), chunk_opts = list(label = "setup", include = FALSE)), setup = NULL,
chunks = list(list(label = "start", code = "# Setup R Environment.\n\nlibrary(tidyverse) # Includes ggplot2 and dplyr.\nlibrary(learnr)\nlibrary(zoo)\n\nfix <- function(df) {\n df <- separate(df, time, c('year', 'month', 'day'), sep = \"-\",remove = FALSE) # Splits date into columns for year, month, and day.\n df$year <- as.numeric(df$year) # Make sure R treats year as a number\n df$month <- as.numeric(df$month) # Make sure R treats year as a number\n df$day <- as.numeric(df$day) # Make sure R treats year as a number\n return(df)\n}\n\nbarossa_data <- read.csv(\"data/barossa_1951-2014.csv\") %>% fix()\n\n# Observational data\nnorth_data <- read.csv(\"data/monsoonal_north_burdekin_1951-2014.csv\") %>% fix()\neastcoast_data <- read.csv(\"data/east_coast_north_coast_1951-2014.csv\") %>% fix()\nmurray_data <- read.csv(\"data/murray_basin_riverina_1951-2014.csv\") %>% fix()\ntas_data <- read.csv(\"data/southern_slopes_south_1951-2014.csv\") %>% fix()\n\n# Drought data\nnorth_paleo <- read.csv(\"data/monsoonal_north_burdekin_drought_1400-2012.csv\") %>% fix()\neastcoast_paleo <- read.csv(\"data/east_coast_north_coast_drought_1400-2012.csv\") %>% fix()\nmurray_paleo <- read.csv(\"data/murray_basin_riverina_drought_1400-2012.csv\") %>% fix()\ntas_paleo <- read.csv(\"data/southern_slopes_south_drought_1400-2012.csv\") %>% fix()\n",
opts = list(label = "\"start\"", exercise = "TRUE"),
engine = "r")), code_check = NULL, error_check = NULL,
check = NULL, solution = NULL, tests = NULL, options = list(
eval = FALSE, echo = TRUE, results = "markup", tidy = FALSE,
tidy.opts = NULL, collapse = FALSE, prompt = FALSE, comment = NA,
highlight = FALSE, size = "normalsize", background = "#F7F7F7",
strip.white = TRUE, cache = 0, cache.path = "workshop_3_cache/html/",
cache.vars = NULL, cache.lazy = TRUE, dependson = NULL,
autodep = FALSE, cache.rebuild = FALSE, fig.keep = "high",
fig.show = "asis", fig.align = "default", fig.path = "workshop_3_files/figure-html/",
dev = "png", dev.args = NULL, dpi = 192, fig.ext = "png",
fig.width = 6.5, fig.height = 4, fig.env = "figure",
fig.cap = NULL, fig.scap = NULL, fig.lp = "fig:", fig.subcap = NULL,
fig.pos = "", out.width = 624, out.height = NULL, out.extra = NULL,
fig.retina = 2, external = TRUE, sanitize = FALSE, interval = 1,
aniopts = "controls,loop", warning = TRUE, error = FALSE,
message = TRUE, render = NULL, ref.label = NULL, child = NULL,
engine = "r", split = FALSE, include = TRUE, purl = TRUE,
max.print = 1000, label = "start", exercise = TRUE, code = c("# Setup R Environment.",
"", "library(tidyverse) # Includes ggplot2 and dplyr.",
"library(learnr)", "library(zoo)", "", "fix <- function(df) {",
" df <- separate(df, time, c('year', 'month', 'day'), sep = \"-\",remove = FALSE) # Splits date into columns for year, month, and day.",
" df$year <- as.numeric(df$year) # Make sure R treats year as a number",
" df$month <- as.numeric(df$month) # Make sure R treats year as a number",
" df$day <- as.numeric(df$day) # Make sure R treats year as a number",
" return(df)", "}", "", "barossa_data <- read.csv(\"data/barossa_1951-2014.csv\") %>% fix()",
"", "# Observational data", "north_data <- read.csv(\"data/monsoonal_north_burdekin_1951-2014.csv\") %>% fix()",
"eastcoast_data <- read.csv(\"data/east_coast_north_coast_1951-2014.csv\") %>% fix()",
"murray_data <- read.csv(\"data/murray_basin_riverina_1951-2014.csv\") %>% fix()",
"tas_data <- read.csv(\"data/southern_slopes_south_1951-2014.csv\") %>% fix()",
"", "# Drought data", "north_paleo <- read.csv(\"data/monsoonal_north_burdekin_drought_1400-2012.csv\") %>% fix()",
"eastcoast_paleo <- read.csv(\"data/east_coast_north_coast_drought_1400-2012.csv\") %>% fix()",
"murray_paleo <- read.csv(\"data/murray_basin_riverina_drought_1400-2012.csv\") %>% fix()",
"tas_paleo <- read.csv(\"data/southern_slopes_south_drought_1400-2012.csv\") %>% fix()",
""), out.width.px = 624, out.height.px = 384, params.src = "start, exercise=TRUE",
fig.num = 0, exercise.df_print = "paged", exercise.checker = "NULL"),
engine = "r", version = "4"), class = c("r", "tutorial_exercise"
)))
</script>
<script type="application/shiny-prerendered" data-context="server">
`tutorial-exercise-lm-result` <- learnr:::setup_exercise_handler(reactive(req(input$`tutorial-exercise-lm-code-editor`)), session)
output$`tutorial-exercise-lm-output` <- renderUI({
`tutorial-exercise-lm-result`()
})
</script>
<script type="application/shiny-prerendered" data-context="server">
learnr:::store_exercise_cache(structure(list(label = "lm", global_setup = structure(c("# Setup R environment",
"library(tidyverse) # Includes ggplot2 and dplyr.", "library(learnr)",
"library(zoo)", "", "fix <- function(df) {", " df <- separate(df, time, c('year', 'month', 'day'), sep = \"-\",remove = FALSE) # Splits date into columns for year, month, and day.",
" df$year <- as.numeric(df$year) # Make sure R treats year as a number",
" df$month <- as.numeric(df$month) # Make sure R treats year as a number",
" df$day <- as.numeric(df$day) # Make sure R treats year as a number",
" return(df)", "}", "", "barossa_data <- read.csv(\"data/barossa_1951-2014.csv\") %>% fix()",
"", "# Observational data", "north_data <- read.csv(\"data/monsoonal_north_burdekin_1951-2014.csv\") %>% fix()",
"eastcoast_data <- read.csv(\"data/east_coast_north_coast_1951-2014.csv\") %>% fix()",
"murray_data <- read.csv(\"data/murray_basin_riverina_1951-2014.csv\") %>% fix()",
"tas_data <- read.csv(\"data/southern_slopes_south_1951-2014.csv\") %>% fix()",
"", "# Drought data", "north_paleo <- read.csv(\"data/monsoonal_north_burdekin_drought_1400-2012.csv\") %>% fix()",
"eastcoast_paleo <- read.csv(\"data/east_coast_north_coast_drought_1400-2012.csv\") %>% fix()",
"murray_paleo <- read.csv(\"data/murray_basin_riverina_drought_1400-2012.csv\") %>% fix()",
"tas_paleo <- read.csv(\"data/southern_slopes_south_drought_1400-2012.csv\") %>% fix()",
"", "# Future data", "north_ssp126_2030 <- read.csv(\"data/monsoonal_north_burdekin_ssp126_2030-2049.csv\") %>% fix()",
"north_ssp126_2060 <- read.csv(\"data/monsoonal_north_burdekin_ssp126_2060-2079.csv\") %>% fix()",
"north_ssp370_2030 <- read.csv(\"data/monsoonal_north_burdekin_ssp370_2030-2049.csv\") %>% fix()",
"north_ssp370_2060 <- read.csv(\"data/monsoonal_north_burdekin_ssp370_2060-2079.csv\") %>% fix()",
"eastcoast_ssp126_2030 <- read.csv(\"data/east_coast_north_coast_ssp126_2030-2049.csv\") %>% fix()",
"eastcoast_ssp126_2060 <- read.csv(\"data/east_coast_north_coast_ssp126_2060-2079.csv\") %>% fix()",
"eastcoast_ssp370_2030 <- read.csv(\"data/east_coast_north_coast_ssp370_2030-2049.csv\") %>% fix()",
"eastcoast_ssp370_2060 <- read.csv(\"data/east_coast_north_coast_ssp370_2060-2079.csv\") %>% fix()",
"murray_ssp126_2030 <- read.csv(\"data/murray_basin_riverina_ssp126_2030-2049.csv\") %>% fix()",
"murray_ssp126_2060 <- read.csv(\"data/murray_basin_riverina_ssp126_2060-2079.csv\") %>% fix()",
"murray_ssp370_2030 <- read.csv(\"data/murray_basin_riverina_ssp370_2030-2049.csv\") %>% fix()",
"murray_ssp370_2060 <- read.csv(\"data/murray_basin_riverina_ssp370_2060-2079.csv\") %>% fix()",
"tas_ssp126_2030 <- read.csv(\"data/southern_slopes_south_ssp126_2030-2049.csv\") %>% fix()",
"tas_ssp126_2060 <- read.csv(\"data/southern_slopes_south_ssp126_2060-2079.csv\") %>% fix()",
"tas_ssp370_2030 <- read.csv(\"data/southern_slopes_south_ssp370_2030-2049.csv\") %>% fix()",
"tas_ssp370_2060 <- read.csv(\"data/southern_slopes_south_ssp370_2060-2079.csv\") %>% fix()"
), chunk_opts = list(label = "setup", include = FALSE)), setup = NULL,
chunks = list(list(label = "lm", code = "# Create a yearly average data frame.\nbarossa_yearly <- barossa_data %>%\n group_by(year) %>%\n summarise(\n mean_tasmax = mean(tasmax),\n mean_tasmin = mean(tasmin),\n mean_pr = mean(pr)\n )\n\n\n# Construct a linear model using lm.\nmodel <- lm(mean_pr ~ year + mean_tasmax, data = barossa_yearly)\n\n# Examine the constructed model using summary.\nsummary(model)",
opts = list(label = "\"lm\"", exercise = "TRUE"), engine = "r")),
code_check = NULL, error_check = NULL, check = NULL, solution = NULL,
tests = NULL, options = list(eval = FALSE, echo = TRUE, results = "markup",
tidy = FALSE, tidy.opts = NULL, collapse = FALSE, prompt = FALSE,
comment = NA, highlight = FALSE, size = "normalsize",
background = "#F7F7F7", strip.white = TRUE, cache = 0,
cache.path = "workshop_3_cache/html/", cache.vars = NULL,
cache.lazy = TRUE, dependson = NULL, autodep = FALSE,
cache.rebuild = FALSE, fig.keep = "high", fig.show = "asis",
fig.align = "default", fig.path = "workshop_3_files/figure-html/",
dev = "png", dev.args = NULL, dpi = 192, fig.ext = "png",
fig.width = 6.5, fig.height = 4, fig.env = "figure",
fig.cap = NULL, fig.scap = NULL, fig.lp = "fig:", fig.subcap = NULL,
fig.pos = "", out.width = 624, out.height = NULL, out.extra = NULL,
fig.retina = 2, external = TRUE, sanitize = FALSE, interval = 1,
aniopts = "controls,loop", warning = TRUE, error = FALSE,
message = TRUE, render = NULL, ref.label = NULL, child = NULL,
engine = "r", split = FALSE, include = TRUE, purl = TRUE,
max.print = 1000, label = "lm", exercise = TRUE, code = c("# Create a yearly average data frame.",
"barossa_yearly <- barossa_data %>%", " group_by(year) %>%",
" summarise(", " mean_tasmax = mean(tasmax),", " mean_tasmin = mean(tasmin),",
" mean_pr = mean(pr)", " )", "", "", "# Construct a linear model using lm.",
"model <- lm(mean_pr ~ year + mean_tasmax, data = barossa_yearly)",
"", "# Examine the constructed model using summary.",
"summary(model)"), out.width.px = 624, out.height.px = 384,
params.src = "lm, exercise=TRUE", fig.num = 0, exercise.df_print = "paged",
exercise.checker = "NULL"), engine = "r", version = "4"), class = c("r",
"tutorial_exercise")))
</script>
<script type="application/shiny-prerendered" data-context="server">
`tutorial-exercise-rolling-result` <- learnr:::setup_exercise_handler(reactive(req(input$`tutorial-exercise-rolling-code-editor`)), session)
output$`tutorial-exercise-rolling-output` <- renderUI({
`tutorial-exercise-rolling-result`()
})
</script>
<script type="application/shiny-prerendered" data-context="server">
learnr:::store_exercise_cache(structure(list(label = "rolling", global_setup = structure(c("# Setup R environment",
"library(tidyverse) # Includes ggplot2 and dplyr.", "library(learnr)",
"library(zoo)", "", "fix <- function(df) {", " df <- separate(df, time, c('year', 'month', 'day'), sep = \"-\",remove = FALSE) # Splits date into columns for year, month, and day.",
" df$year <- as.numeric(df$year) # Make sure R treats year as a number",
" df$month <- as.numeric(df$month) # Make sure R treats year as a number",
" df$day <- as.numeric(df$day) # Make sure R treats year as a number",
" return(df)", "}", "", "barossa_data <- read.csv(\"data/barossa_1951-2014.csv\") %>% fix()",
"", "# Observational data", "north_data <- read.csv(\"data/monsoonal_north_burdekin_1951-2014.csv\") %>% fix()",
"eastcoast_data <- read.csv(\"data/east_coast_north_coast_1951-2014.csv\") %>% fix()",
"murray_data <- read.csv(\"data/murray_basin_riverina_1951-2014.csv\") %>% fix()",
"tas_data <- read.csv(\"data/southern_slopes_south_1951-2014.csv\") %>% fix()",
"", "# Drought data", "north_paleo <- read.csv(\"data/monsoonal_north_burdekin_drought_1400-2012.csv\") %>% fix()",
"eastcoast_paleo <- read.csv(\"data/east_coast_north_coast_drought_1400-2012.csv\") %>% fix()",
"murray_paleo <- read.csv(\"data/murray_basin_riverina_drought_1400-2012.csv\") %>% fix()",
"tas_paleo <- read.csv(\"data/southern_slopes_south_drought_1400-2012.csv\") %>% fix()",
"", "# Future data", "north_ssp126_2030 <- read.csv(\"data/monsoonal_north_burdekin_ssp126_2030-2049.csv\") %>% fix()",
"north_ssp126_2060 <- read.csv(\"data/monsoonal_north_burdekin_ssp126_2060-2079.csv\") %>% fix()",
"north_ssp370_2030 <- read.csv(\"data/monsoonal_north_burdekin_ssp370_2030-2049.csv\") %>% fix()",
"north_ssp370_2060 <- read.csv(\"data/monsoonal_north_burdekin_ssp370_2060-2079.csv\") %>% fix()",
"eastcoast_ssp126_2030 <- read.csv(\"data/east_coast_north_coast_ssp126_2030-2049.csv\") %>% fix()",
"eastcoast_ssp126_2060 <- read.csv(\"data/east_coast_north_coast_ssp126_2060-2079.csv\") %>% fix()",
"eastcoast_ssp370_2030 <- read.csv(\"data/east_coast_north_coast_ssp370_2030-2049.csv\") %>% fix()",
"eastcoast_ssp370_2060 <- read.csv(\"data/east_coast_north_coast_ssp370_2060-2079.csv\") %>% fix()",
"murray_ssp126_2030 <- read.csv(\"data/murray_basin_riverina_ssp126_2030-2049.csv\") %>% fix()",
"murray_ssp126_2060 <- read.csv(\"data/murray_basin_riverina_ssp126_2060-2079.csv\") %>% fix()",
"murray_ssp370_2030 <- read.csv(\"data/murray_basin_riverina_ssp370_2030-2049.csv\") %>% fix()",
"murray_ssp370_2060 <- read.csv(\"data/murray_basin_riverina_ssp370_2060-2079.csv\") %>% fix()",
"tas_ssp126_2030 <- read.csv(\"data/southern_slopes_south_ssp126_2030-2049.csv\") %>% fix()",
"tas_ssp126_2060 <- read.csv(\"data/southern_slopes_south_ssp126_2060-2079.csv\") %>% fix()",
"tas_ssp370_2030 <- read.csv(\"data/southern_slopes_south_ssp370_2030-2049.csv\") %>% fix()",
"tas_ssp370_2060 <- read.csv(\"data/southern_slopes_south_ssp370_2060-2079.csv\") %>% fix()"
), chunk_opts = list(label = "setup", include = FALSE)), setup = "# Create a yearly average data frame.\nbarossa_yearly <- barossa_data %>%\n group_by(year) %>%\n summarise(\n mean_tasmax = mean(tasmax),\n mean_tasmin = mean(tasmin),\n mean_pr = mean(pr)\n )\n\n\n# Construct a linear model using lm.\nmodel <- lm(mean_pr ~ year + mean_tasmax, data = barossa_yearly)\n\n# Examine the constructed model using summary.\nsummary(model)",
chunks = list(list(label = "lm", code = "# Create a yearly average data frame.\nbarossa_yearly <- barossa_data %>%\n group_by(year) %>%\n summarise(\n mean_tasmax = mean(tasmax),\n mean_tasmin = mean(tasmin),\n mean_pr = mean(pr)\n )\n\n\n# Construct a linear model using lm.\nmodel <- lm(mean_pr ~ year + mean_tasmax, data = barossa_yearly)\n\n# Examine the constructed model using summary.\nsummary(model)",
opts = list(label = "\"lm\"", exercise = "TRUE"), engine = "r"),
list(label = "rolling", code = "# Calculate the rolling mean of precipitation in the Barossa Valley.\nbarossa_yearly$rolling_mean_pr <- rollmean(barossa_yearly$mean_pr, k = 10, fill = NA)\n\n# Plot the rolling mean for precipitation.\nggplot(barossa_yearly, aes(x = year, y = rolling_mean_pr)) +\n geom_point() + \n geom_line() +\n ggtitle(\"10-year average precipitation 1950s to 2010s\") +\n xlab(\"Year\") + ylab(\"Precipitation (mm)\") + \n theme_minimal()",
opts = list(label = "\"rolling\"", exercise = "TRUE",
exercise.setup = "\"lm\""), engine = "r")), code_check = NULL,
error_check = NULL, check = NULL, solution = NULL, tests = NULL,
options = list(eval = FALSE, echo = TRUE, results = "markup",
tidy = FALSE, tidy.opts = NULL, collapse = FALSE, prompt = FALSE,
comment = NA, highlight = FALSE, size = "normalsize",
background = "#F7F7F7", strip.white = TRUE, cache = 0,
cache.path = "workshop_3_cache/html/", cache.vars = NULL,
cache.lazy = TRUE, dependson = NULL, autodep = FALSE,
cache.rebuild = FALSE, fig.keep = "high", fig.show = "asis",
fig.align = "default", fig.path = "workshop_3_files/figure-html/",
dev = "png", dev.args = NULL, dpi = 192, fig.ext = "png",
fig.width = 6.5, fig.height = 4, fig.env = "figure",
fig.cap = NULL, fig.scap = NULL, fig.lp = "fig:", fig.subcap = NULL,
fig.pos = "", out.width = 624, out.height = NULL, out.extra = NULL,
fig.retina = 2, external = TRUE, sanitize = FALSE, interval = 1,
aniopts = "controls,loop", warning = TRUE, error = FALSE,
message = TRUE, render = NULL, ref.label = NULL, child = NULL,
engine = "r", split = FALSE, include = TRUE, purl = TRUE,
max.print = 1000, label = "rolling", exercise = TRUE,
exercise.setup = "lm", code = c("# Calculate the rolling mean of precipitation in the Barossa Valley.",
"barossa_yearly$rolling_mean_pr <- rollmean(barossa_yearly$mean_pr, k = 10, fill = NA)",
"", "# Plot the rolling mean for precipitation.", "ggplot(barossa_yearly, aes(x = year, y = rolling_mean_pr)) +",
" geom_point() + ", " geom_line() +", " ggtitle(\"10-year average precipitation 1950s to 2010s\") +",
" xlab(\"Year\") + ylab(\"Precipitation (mm)\") + ",
" theme_minimal()"), out.width.px = 624, out.height.px = 384,
params.src = "rolling, exercise=TRUE, exercise.setup=\"lm\"",
fig.num = 0, exercise.df_print = "paged", exercise.checker = "NULL"),
engine = "r", version = "4"), class = c("r", "tutorial_exercise"
)))
</script>
<script type="application/shiny-prerendered" data-context="server">
`tutorial-exercise-ex-drought-result` <- learnr:::setup_exercise_handler(reactive(req(input$`tutorial-exercise-ex-drought-code-editor`)), session)
output$`tutorial-exercise-ex-drought-output` <- renderUI({
`tutorial-exercise-ex-drought-result`()
})
</script>
<script type="application/shiny-prerendered" data-context="server">
learnr:::store_exercise_cache(structure(list(label = "ex-drought", global_setup = structure(c("# Setup R environment",
"library(tidyverse) # Includes ggplot2 and dplyr.", "library(learnr)",
"library(zoo)", "", "fix <- function(df) {", " df <- separate(df, time, c('year', 'month', 'day'), sep = \"-\",remove = FALSE) # Splits date into columns for year, month, and day.",
" df$year <- as.numeric(df$year) # Make sure R treats year as a number",
" df$month <- as.numeric(df$month) # Make sure R treats year as a number",
" df$day <- as.numeric(df$day) # Make sure R treats year as a number",
" return(df)", "}", "", "barossa_data <- read.csv(\"data/barossa_1951-2014.csv\") %>% fix()",
"", "# Observational data", "north_data <- read.csv(\"data/monsoonal_north_burdekin_1951-2014.csv\") %>% fix()",
"eastcoast_data <- read.csv(\"data/east_coast_north_coast_1951-2014.csv\") %>% fix()",
"murray_data <- read.csv(\"data/murray_basin_riverina_1951-2014.csv\") %>% fix()",
"tas_data <- read.csv(\"data/southern_slopes_south_1951-2014.csv\") %>% fix()",
"", "# Drought data", "north_paleo <- read.csv(\"data/monsoonal_north_burdekin_drought_1400-2012.csv\") %>% fix()",
"eastcoast_paleo <- read.csv(\"data/east_coast_north_coast_drought_1400-2012.csv\") %>% fix()",
"murray_paleo <- read.csv(\"data/murray_basin_riverina_drought_1400-2012.csv\") %>% fix()",
"tas_paleo <- read.csv(\"data/southern_slopes_south_drought_1400-2012.csv\") %>% fix()",
"", "# Future data", "north_ssp126_2030 <- read.csv(\"data/monsoonal_north_burdekin_ssp126_2030-2049.csv\") %>% fix()",
"north_ssp126_2060 <- read.csv(\"data/monsoonal_north_burdekin_ssp126_2060-2079.csv\") %>% fix()",
"north_ssp370_2030 <- read.csv(\"data/monsoonal_north_burdekin_ssp370_2030-2049.csv\") %>% fix()",
"north_ssp370_2060 <- read.csv(\"data/monsoonal_north_burdekin_ssp370_2060-2079.csv\") %>% fix()",
"eastcoast_ssp126_2030 <- read.csv(\"data/east_coast_north_coast_ssp126_2030-2049.csv\") %>% fix()",
"eastcoast_ssp126_2060 <- read.csv(\"data/east_coast_north_coast_ssp126_2060-2079.csv\") %>% fix()",
"eastcoast_ssp370_2030 <- read.csv(\"data/east_coast_north_coast_ssp370_2030-2049.csv\") %>% fix()",
"eastcoast_ssp370_2060 <- read.csv(\"data/east_coast_north_coast_ssp370_2060-2079.csv\") %>% fix()",
"murray_ssp126_2030 <- read.csv(\"data/murray_basin_riverina_ssp126_2030-2049.csv\") %>% fix()",
"murray_ssp126_2060 <- read.csv(\"data/murray_basin_riverina_ssp126_2060-2079.csv\") %>% fix()",
"murray_ssp370_2030 <- read.csv(\"data/murray_basin_riverina_ssp370_2030-2049.csv\") %>% fix()",
"murray_ssp370_2060 <- read.csv(\"data/murray_basin_riverina_ssp370_2060-2079.csv\") %>% fix()",
"tas_ssp126_2030 <- read.csv(\"data/southern_slopes_south_ssp126_2030-2049.csv\") %>% fix()",
"tas_ssp126_2060 <- read.csv(\"data/southern_slopes_south_ssp126_2060-2079.csv\") %>% fix()",
"tas_ssp370_2030 <- read.csv(\"data/southern_slopes_south_ssp370_2030-2049.csv\") %>% fix()",
"tas_ssp370_2060 <- read.csv(\"data/southern_slopes_south_ssp370_2060-2079.csv\") %>% fix()"
), chunk_opts = list(label = "setup", include = FALSE)), setup = NULL,
chunks = list(list(label = "ex-drought", code = "# Plot drought index.",
opts = list(label = "\"ex-drought\"", exercise = "TRUE"),
engine = "r")), code_check = NULL, error_check = NULL,
check = NULL, solution = NULL, tests = NULL, options = list(
eval = FALSE, echo = TRUE, results = "markup", tidy = FALSE,
tidy.opts = NULL, collapse = FALSE, prompt = FALSE, comment = NA,
highlight = FALSE, size = "normalsize", background = "#F7F7F7",
strip.white = TRUE, cache = 0, cache.path = "workshop_3_cache/html/",
cache.vars = NULL, cache.lazy = TRUE, dependson = NULL,
autodep = FALSE, cache.rebuild = FALSE, fig.keep = "high",
fig.show = "asis", fig.align = "default", fig.path = "workshop_3_files/figure-html/",
dev = "png", dev.args = NULL, dpi = 192, fig.ext = "png",
fig.width = 6.5, fig.height = 4, fig.env = "figure",
fig.cap = NULL, fig.scap = NULL, fig.lp = "fig:", fig.subcap = NULL,
fig.pos = "", out.width = 624, out.height = NULL, out.extra = NULL,
fig.retina = 2, external = TRUE, sanitize = FALSE, interval = 1,
aniopts = "controls,loop", warning = TRUE, error = FALSE,
message = TRUE, render = NULL, ref.label = NULL, child = NULL,
engine = "r", split = FALSE, include = TRUE, purl = TRUE,
max.print = 1000, label = "ex-drought", exercise = TRUE,
code = "# Plot drought index.", out.width.px = 624, out.height.px = 384,
params.src = "ex-drought, exercise=TRUE", fig.num = 0,
exercise.df_print = "paged", exercise.checker = "NULL"),
engine = "r", version = "4"), class = c("r", "tutorial_exercise"
)))
</script>
<script type="application/shiny-prerendered" data-context="server">
`tutorial-exercise-ex-lm-result` <- learnr:::setup_exercise_handler(reactive(req(input$`tutorial-exercise-ex-lm-code-editor`)), session)
output$`tutorial-exercise-ex-lm-output` <- renderUI({
`tutorial-exercise-ex-lm-result`()
})
</script>
<script type="application/shiny-prerendered" data-context="server">
learnr:::store_exercise_cache(structure(list(label = "ex-lm", global_setup = structure(c("# Setup R environment",
"library(tidyverse) # Includes ggplot2 and dplyr.", "library(learnr)",
"library(zoo)", "", "fix <- function(df) {", " df <- separate(df, time, c('year', 'month', 'day'), sep = \"-\",remove = FALSE) # Splits date into columns for year, month, and day.",
" df$year <- as.numeric(df$year) # Make sure R treats year as a number",
" df$month <- as.numeric(df$month) # Make sure R treats year as a number",
" df$day <- as.numeric(df$day) # Make sure R treats year as a number",
" return(df)", "}", "", "barossa_data <- read.csv(\"data/barossa_1951-2014.csv\") %>% fix()",
"", "# Observational data", "north_data <- read.csv(\"data/monsoonal_north_burdekin_1951-2014.csv\") %>% fix()",
"eastcoast_data <- read.csv(\"data/east_coast_north_coast_1951-2014.csv\") %>% fix()",
"murray_data <- read.csv(\"data/murray_basin_riverina_1951-2014.csv\") %>% fix()",
"tas_data <- read.csv(\"data/southern_slopes_south_1951-2014.csv\") %>% fix()",
"", "# Drought data", "north_paleo <- read.csv(\"data/monsoonal_north_burdekin_drought_1400-2012.csv\") %>% fix()",
"eastcoast_paleo <- read.csv(\"data/east_coast_north_coast_drought_1400-2012.csv\") %>% fix()",
"murray_paleo <- read.csv(\"data/murray_basin_riverina_drought_1400-2012.csv\") %>% fix()",
"tas_paleo <- read.csv(\"data/southern_slopes_south_drought_1400-2012.csv\") %>% fix()",
"", "# Future data", "north_ssp126_2030 <- read.csv(\"data/monsoonal_north_burdekin_ssp126_2030-2049.csv\") %>% fix()",
"north_ssp126_2060 <- read.csv(\"data/monsoonal_north_burdekin_ssp126_2060-2079.csv\") %>% fix()",
"north_ssp370_2030 <- read.csv(\"data/monsoonal_north_burdekin_ssp370_2030-2049.csv\") %>% fix()",
"north_ssp370_2060 <- read.csv(\"data/monsoonal_north_burdekin_ssp370_2060-2079.csv\") %>% fix()",
"eastcoast_ssp126_2030 <- read.csv(\"data/east_coast_north_coast_ssp126_2030-2049.csv\") %>% fix()",
"eastcoast_ssp126_2060 <- read.csv(\"data/east_coast_north_coast_ssp126_2060-2079.csv\") %>% fix()",
"eastcoast_ssp370_2030 <- read.csv(\"data/east_coast_north_coast_ssp370_2030-2049.csv\") %>% fix()",
"eastcoast_ssp370_2060 <- read.csv(\"data/east_coast_north_coast_ssp370_2060-2079.csv\") %>% fix()",
"murray_ssp126_2030 <- read.csv(\"data/murray_basin_riverina_ssp126_2030-2049.csv\") %>% fix()",
"murray_ssp126_2060 <- read.csv(\"data/murray_basin_riverina_ssp126_2060-2079.csv\") %>% fix()",
"murray_ssp370_2030 <- read.csv(\"data/murray_basin_riverina_ssp370_2030-2049.csv\") %>% fix()",
"murray_ssp370_2060 <- read.csv(\"data/murray_basin_riverina_ssp370_2060-2079.csv\") %>% fix()",
"tas_ssp126_2030 <- read.csv(\"data/southern_slopes_south_ssp126_2030-2049.csv\") %>% fix()",
"tas_ssp126_2060 <- read.csv(\"data/southern_slopes_south_ssp126_2060-2079.csv\") %>% fix()",
"tas_ssp370_2030 <- read.csv(\"data/southern_slopes_south_ssp370_2030-2049.csv\") %>% fix()",
"tas_ssp370_2060 <- read.csv(\"data/southern_slopes_south_ssp370_2060-2079.csv\") %>% fix()"
), chunk_opts = list(label = "setup", include = FALSE)), setup = NULL,
chunks = list(list(label = "ex-lm", code = "# Process your data using dplyr and rollmean\n\n\n# Use lm and summary to analyse climate trends over time.\n\n\n# Plot any relevant trends found in your linear models. geom_smooth is good for this!\n\n",
opts = list(label = "\"ex-lm\"", exercise = "TRUE"),
engine = "r")), code_check = NULL, error_check = NULL,
check = NULL, solution = NULL, tests = NULL, options = list(
eval = FALSE, echo = TRUE, results = "markup", tidy = FALSE,
tidy.opts = NULL, collapse = FALSE, prompt = FALSE, comment = NA,
highlight = FALSE, size = "normalsize", background = "#F7F7F7",
strip.white = TRUE, cache = 0, cache.path = "workshop_3_cache/html/",
cache.vars = NULL, cache.lazy = TRUE, dependson = NULL,
autodep = FALSE, cache.rebuild = FALSE, fig.keep = "high",
fig.show = "asis", fig.align = "default", fig.path = "workshop_3_files/figure-html/",
dev = "png", dev.args = NULL, dpi = 192, fig.ext = "png",
fig.width = 6.5, fig.height = 4, fig.env = "figure",
fig.cap = NULL, fig.scap = NULL, fig.lp = "fig:", fig.subcap = NULL,
fig.pos = "", out.width = 624, out.height = NULL, out.extra = NULL,
fig.retina = 2, external = TRUE, sanitize = FALSE, interval = 1,
aniopts = "controls,loop", warning = TRUE, error = FALSE,
message = TRUE, render = NULL, ref.label = NULL, child = NULL,
engine = "r", split = FALSE, include = TRUE, purl = TRUE,
max.print = 1000, label = "ex-lm", exercise = TRUE, code = c("# Process your data using dplyr and rollmean",
"", "", "# Use lm and summary to analyse climate trends over time.",
"", "", "# Plot any relevant trends found in your linear models. geom_smooth is good for this!",
"", ""), out.width.px = 624, out.height.px = 384, params.src = "ex-lm, exercise=TRUE",
fig.num = 0, exercise.df_print = "paged", exercise.checker = "NULL"),
engine = "r", version = "4"), class = c("r", "tutorial_exercise"
)))
</script>
</p>
<!--html_preserve-->
<script type="application/shiny-prerendered" data-context="dependencies">
{"type":"list","attributes":{},"value":[{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["name","version","src","meta","script","stylesheet","head","attachment","package","all_files","pkgVersion"]},"class":{"type":"character","attributes":{},"value":["html_dependency"]}},"value":[{"type":"character","attributes":{},"value":["header-attrs"]},{"type":"character","attributes":{},"value":["2.27"]},{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["file"]}},"value":[{"type":"character","attributes":{},"value":["rmd/h/pandoc"]}]},{"type":"NULL"},{"type":"character","attributes":{},"value":["header-attrs.js"]},{"type":"NULL"},{"type":"NULL"},{"type":"NULL"},{"type":"character","attributes":{},"value":["rmarkdown"]},{"type":"logical","attributes":{},"value":[true]},{"type":"character","attributes":{},"value":["2.27"]}]},{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["name","version","src","meta","script","stylesheet","head","attachment","package","all_files","pkgVersion"]},"class":{"type":"character","attributes":{},"value":["html_dependency"]}},"value":[{"type":"character","attributes":{},"value":["jquery"]},{"type":"character","attributes":{},"value":["3.6.0"]},{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["file"]}},"value":[{"type":"character","attributes":{},"value":["lib/3.6.0"]}]},{"type":"NULL"},{"type":"character","attributes":{},"value":["jquery-3.6.0.min.js"]},{"type":"NULL"},{"type":"NULL"},{"type":"NULL"},{"type":"character","attributes":{},"value":["jquerylib"]},{"type":"logical","attributes":{},"value":[true]},{"type":"character","attributes":{},"value":["0.1.4"]}]},{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["name","version","src","meta","script","stylesheet","head","attachment","package","all_files","pkgVersion"]},"class":{"type":"character","attributes":{},"value":["html_dependency"]}},"value":[{"type":"character","attributes":{},"value":["bootstrap"]},{"type":"character","attributes":{},"value":["3.3.5"]},{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["file"]}},"value":[{"type":"character","attributes":{},"value":["rmd/h/bootstrap"]}]},{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["viewport"]}},"value":[{"type":"character","attributes":{},"value":["width=device-width, initial-scale=1"]}]},{"type":"character","attributes":{},"value":["js/bootstrap.min.js","shim/html5shiv.min.js","shim/respond.min.js"]},{"type":"character","attributes":{},"value":["css/lumen.min.css"]},{"type":"character","attributes":{},"value":["<style>h1 {font-size: 34px;}\n h1.title {font-size: 38px;}\n h2 {font-size: 30px;}\n h3 {font-size: 24px;}\n h4 {font-size: 18px;}\n h5 {font-size: 16px;}\n h6 {font-size: 12px;}\n code {color: inherit; background-color: rgba(0, 0, 0, 0.04);}\n pre:not([class]) { background-color: white }<\/style>"]},{"type":"NULL"},{"type":"character","attributes":{},"value":["rmarkdown"]},{"type":"logical","attributes":{},"value":[true]},{"type":"character","attributes":{},"value":["2.27"]}]},{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["name","version","src","meta","script","stylesheet","head","attachment","package","all_files","pkgVersion"]},"class":{"type":"character","attributes":{},"value":["html_dependency"]}},"value":[{"type":"character","attributes":{},"value":["pagedtable"]},{"type":"character","attributes":{},"value":["1.1"]},{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["file"]}},"value":[{"type":"character","attributes":{},"value":["rmd/h/pagedtable-1.1"]}]},{"type":"NULL"},{"type":"character","attributes":{},"value":["js/pagedtable.js"]},{"type":"character","attributes":{},"value":["css/pagedtable.css"]},{"type":"NULL"},{"type":"NULL"},{"type":"character","attributes":{},"value":["rmarkdown"]},{"type":"logical","attributes":{},"value":[true]},{"type":"character","attributes":{},"value":["2.27"]}]},{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["name","version","src","meta","script","stylesheet","head","attachment","package","all_files","pkgVersion"]},"class":{"type":"character","attributes":{},"value":["html_dependency"]}},"value":[{"type":"character","attributes":{},"value":["highlightjs"]},{"type":"character","attributes":{},"value":["9.12.0"]},{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["file"]}},"value":[{"type":"character","attributes":{},"value":["rmd/h/highlightjs"]}]},{"type":"NULL"},{"type":"character","attributes":{},"value":["highlight.js"]},{"type":"character","attributes":{},"value":["textmate.css"]},{"type":"NULL"},{"type":"NULL"},{"type":"character","attributes":{},"value":["rmarkdown"]},{"type":"logical","attributes":{},"value":[true]},{"type":"character","attributes":{},"value":["2.27"]}]},{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["name","version","src","meta","script","stylesheet","head","attachment","package","all_files","pkgVersion"]},"class":{"type":"character","attributes":{},"value":["html_dependency"]}},"value":[{"type":"character","attributes":{},"value":["tutorial"]},{"type":"character","attributes":{},"value":["0.11.5"]},{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["file"]}},"value":[{"type":"character","attributes":{},"value":["lib/tutorial"]}]},{"type":"NULL"},{"type":"character","attributes":{},"value":["tutorial.js"]},{"type":"character","attributes":{},"value":["tutorial.css"]},{"type":"NULL"},{"type":"NULL"},{"type":"character","attributes":{},"value":["learnr"]},{"type":"logical","attributes":{},"value":[true]},{"type":"character","attributes":{},"value":["0.11.5"]}]},{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["name","version","src","meta","script","stylesheet","head","attachment","package","all_files","pkgVersion"]},"class":{"type":"character","attributes":{},"value":["html_dependency"]}},"value":[{"type":"character","attributes":{},"value":["i18n"]},{"type":"character","attributes":{},"value":["21.6.10"]},{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["file"]}},"value":[{"type":"character","attributes":{},"value":["lib/i18n"]}]},{"type":"NULL"},{"type":"character","attributes":{},"value":["i18next.min.js","tutorial-i18n-init.js"]},{"type":"NULL"},{"type":"character","attributes":{},"value":["<script id=\"i18n-cstm-trns\" type=\"application/json\">{\"language\":\"en\",\"resources\":{\"en\":{\"translation\":{\"button\":{\"runcode\":\"Run Code\",\"runcodetitle\":\"$t(button.runcode) ({{kbd}})\",\"hint\":\"Hint\",\"hint_plural\":\"Hints\",\"hinttitle\":\"$t(button.hint)\",\"hintnext\":\"Next Hint\",\"hintprev\":\"Previous Hint\",\"solution\":\"Solution\",\"solutiontitle\":\"$t(button.solution)\",\"copyclipboard\":\"Copy to Clipboard\",\"startover\":\"Start Over\",\"startovertitle\":\"$t(button.startover)\",\"continue\":\"Continue\",\"submitanswer\":\"Submit Answer\",\"submitanswertitle\":\"$t(button.submitanswer)\",\"previoustopic\":\"Previous Topic\",\"nexttopic\":\"Next Topic\",\"questionsubmit\":\"$t(button.submitanswer)\",\"questiontryagain\":\"Try Again\"},\"text\":{\"startover\":\"Start Over\",\"areyousure\":\"Are you sure you want to start over? (all exercise progress will be reset)\",\"youmustcomplete\":\"You must complete the\",\"exercise\":\"exercise\",\"exercise_plural\":\"exercises\",\"inthissection\":\"in this section before continuing.\",\"code\":\"Code\",\"enginecap\":\"{{engine}} $t(text.code)\",\"quiz\":\"Quiz\",\"blank\":\"blank\",\"blank_plural\":\"blanks\",\"exercisecontainsblank\":\"This exercise contains {{count}} $t(text.blank).\",\"pleasereplaceblank\":\"Please replace {{blank}} with valid code.\",\"unparsable\":\"It looks like this might not be valid R code. R cannot determine how to turn your text into a complete command. You may have forgotten to fill in a blank, to remove an underscore, to include a comma between arguments, or to close an opening <code>"<\\/code>, <code>'<\\/code>, <code>(<\\/code> or <code>{<\\/code> with a matching <code>"<\\/code>, <code>'<\\/code>, <code>)<\\/code> or <code>}<\\/code>.\\n\",\"unparsablequotes\":\"<p>It looks like your R code contains specially formatted quotation marks or "curly" quotes (<code>{{character}}<\\/code>) around character strings, making your code invalid. R requires character values to be contained in straight quotation marks (<code>"<\\/code> or <code>'<\\/code>).<\\/p> {{code}} <p>Don't worry, this is a common source of errors when you copy code from another app that applies its own formatting to text. You can try replacing the code on that line with the following. There may be other places that need to be fixed, too.<\\/p> {{suggestion}}\\n\",\"unparsableunicode\":\"<p>It looks like your R code contains an unexpected special character (<code>{{character}}<\\/code>) that makes your code invalid.<\\/p> {{code}} <p>Sometimes your code may contain a special character that looks like a regular character, especially if you copy and paste the code from another app. Try deleting the special character from your code and retyping it manually.<\\/p>\\n\",\"unparsableunicodesuggestion\":\"<p>It looks like your R code contains an unexpected special character (<code>{{character}}<\\/code>) that makes your code invalid.<\\/p> {{code}} <p>Sometimes your code may contain a special character that looks like a regular character, especially if you copy and paste the code from another app. You can try replacing the code on that line with the following. There may be other places that need to be fixed, too.<\\/p> {{suggestion}}\\n\",\"and\":\"and\",\"or\":\"or\",\"listcomma\":\", \",\"oxfordcomma\":\",\"}}},\"fr\":{\"translation\":{\"button\":{\"runcode\":\"Lancer le Code\",\"runcodetitle\":\"$t(button.runcode) ({{kbd}})\",\"hint\":\"Indication\",\"hint_plural\":\"Indications\",\"hinttitle\":\"$t(button.hint)\",\"hintnext\":\"Indication Suivante\",\"hintprev\":\"Indication Précédente\",\"solution\":\"Solution\",\"solutiontitle\":\"$t(button.solution)\",\"copyclipboard\":\"Copier dans le Presse-papier\",\"startover\":\"Recommencer\",\"startovertitle\":\"$t(button.startover)\",\"continue\":\"Continuer\",\"submitanswer\":\"Soumettre\",\"submitanswertitle\":\"$t(button.submitanswer)\",\"previoustopic\":\"Chapitre Précédent\",\"nexttopic\":\"Chapitre Suivant\",\"questionsubmit\":\"$t(button.submitanswer)\",\"questiontryagain\":\"Réessayer\"},\"text\":{\"startover\":\"Recommencer\",\"areyousure\":\"Êtes-vous certains de vouloir recommencer? (La progression sera remise à zéro)\",\"youmustcomplete\":\"Vous devez d'abord compléter\",\"exercise\":\"l'exercice\",\"exercise_plural\":\"des exercices\",\"inthissection\":\"de cette section avec de continuer.\",\"code\":\"Code\",\"enginecap\":\"$t(text.code) {{engine}}\",\"quiz\":\"Quiz\",\"and\":\"et\",\"or\":\"ou\",\"oxfordcomma\":\"\"}}},\"es\":{\"translation\":{\"button\":{\"runcode\":\"Ejecutar código\",\"runcodetitle\":\"$t(button.runcode) ({{kbd}})\",\"hint\":\"Pista\",\"hint_plural\":\"Pistas\",\"hinttitle\":\"$t(button.hint)\",\"hintnext\":\"Siguiente pista\",\"hintprev\":\"Pista anterior\",\"solution\":\"Solución\",\"solutiontitle\":\"$t(button.solution)\",\"copyclipboard\":\"Copiar al portapapeles\",\"startover\":\"Reiniciar\",\"startovertitle\":\"$t(button.startover)\",\"continue\":\"Continuar\",\"submitanswer\":\"Enviar respuesta\",\"submitanswertitle\":\"$t(button.submitanswer)\",\"previoustopic\":\"Tema anterior\",\"nexttopic\":\"Tema siguiente\",\"questionsubmit\":\"$t(button.submitanswer)\",\"questiontryagain\":\"Volver a intentar\"},\"text\":{\"startover\":\"Reiniciar\",\"areyousure\":\"¿De verdad quieres empezar de nuevo? (todo el progreso del ejercicio se perderá)\",\"youmustcomplete\":\"Debes completar\",\"exercise\":\"el ejercicio\",\"exercise_plural\":\"los ejercicios\",\"inthissection\":\"en esta sección antes de continuar.\",\"code\":\"Código\",\"enginecap\":\"$t(text.code) {{engine}}\",\"quiz\":\"Cuestionario\",\"and\":\"y\",\"or\":\"o\",\"oxfordcomma\":\"\"}}},\"pt\":{\"translation\":{\"button\":{\"runcode\":\"Executar código\",\"runcodetitle\":\"$t(button.runcode) ({{kbd}})\",\"hint\":\"Dica\",\"hint_plural\":\"Dicas\",\"hinttitle\":\"$t(button.hint)\",\"hintnext\":\"Próxima dica\",\"hintprev\":\"Dica anterior\",\"solution\":\"Solução\",\"solutiontitle\":\"$t(button.solution)\",\"copyclipboard\":\"Copiar para a área de transferência\",\"startover\":\"Reiniciar\",\"startovertitle\":\"$t(button.startover)\",\"continue\":\"Continuar\",\"submitanswer\":\"Enviar resposta\",\"submitanswertitle\":\"$t(button.submitanswer)\",\"previoustopic\":\"Tópico anterior\",\"nexttopic\":\"Próximo tópico\",\"questionsubmit\":\"$t(button.submitanswer)\",\"questiontryagain\":\"Tentar novamente\"},\"text\":{\"startover\":\"Reiniciar\",\"areyousure\":\"Tem certeza que deseja começar novamente? (todo o progresso feito será perdido)\",\"youmustcomplete\":\"Você deve completar\",\"exercise\":\"o exercício\",\"exercise_plural\":\"os exercícios\",\"inthissection\":\"nesta seção antes de continuar.\",\"code\":\"Código\",\"enginecap\":\"$t(text.code) {{engine}}\",\"quiz\":\"Quiz\",\"and\":\"e\",\"or\":\"ou\",\"oxfordcomma\":\"\"}}},\"tr\":{\"translation\":{\"button\":{\"runcode\":\"Çalıştırma Kodu\",\"runcodetitle\":\"$t(button.runcode) ({{kbd}})\",\"hint\":\"Ipucu\",\"hint_plural\":\"İpuçları\",\"hinttitle\":\"$t(button.hint)\",\"hintnext\":\"Sonraki İpucu\",\"hintprev\":\"Önceki İpucu\",\"solution\":\"Çözüm\",\"solutiontitle\":\"$t(button.solution)\",\"copyclipboard\":\"Pano'ya Kopyala\",\"startover\":\"Baştan Başlamak\",\"startovertitle\":\"$t(button.startover)\",\"continue\":\"Devam et\",\"submitanswer\":\"Cevabı onayla\",\"submitanswertitle\":\"$t(button.submitanswer)\",\"previoustopic\":\"Önceki Konu\",\"nexttopic\":\"Sonraki Konu\",\"questionsubmit\":\"$t(button.submitanswer)\",\"questiontryagain\":\"Tekrar Deneyin\"},\"text\":{\"startover\":\"Baştan Başlamak\",\"areyousure\":\"Baştan başlamak istediğinizden emin misiniz? (tüm egzersiz ilerlemesi kaybolacak)\",\"youmustcomplete\":\"Tamamlamalısın\",\"exercise\":\"egzersiz\",\"exercise_plural\":\"egzersizler\",\"inthissection\":\"devam etmeden önce bu bölümde\",\"code\":\"Kod\",\"enginecap\":\"$t(text.code) {{engine}}\",\"quiz\":\"Sınav\",\"oxfordcomma\":\"\"}}},\"emo\":{\"translation\":{\"button\":{\"runcode\":\"🏃\",\"runcodetitle\":\"$t(button.runcode) ({{kbd}})\",\"hint\":\"💡\",\"hint_plural\":\"$t(button.hint)\",\"hinttitle\":\"$t(button.hint)\",\"solution\":\"🎯\",\"solutiontitle\":\"$t(button.solution)\",\"copyclipboard\":\"📋\",\"startover\":\"⏮\",\"startovertitle\":\"Start Over\",\"continue\":\"✅\",\"submitanswer\":\"🆗\",\"submitanswertitle\":\"Submit Answer\",\"previoustopic\":\"⬅\",\"nexttopic\":\"➡\",\"questionsubmit\":\"$t(button.submitanswer)\",\"questiontryagain\":\"🔁\"},\"text\":{\"startover\":\"⏮\",\"areyousure\":\"🤔\",\"youmustcomplete\":\"⚠️ 👉 🧑💻\",\"exercise\":\"\",\"exercise_plural\":\"\",\"inthissection\":\"\",\"code\":\"💻\",\"enginecap\":\"$t(text.code) {{engine}}\",\"oxfordcomma\":\"\"}}},\"eu\":{\"translation\":{\"button\":{\"runcode\":\"Kodea egikaritu\",\"runcodetitle\":\"$t(button.runcode) ({{kbd}})\",\"hint\":\"Laguntza\",\"hint_plural\":\"Laguntza\",\"hinttitle\":\"$t(button.hint)\",\"hintnext\":\"Aurreko laguntza\",\"hintprev\":\"Hurrengo laguntza\",\"solution\":\"Ebazpena\",\"solutiontitle\":\"$t(button.solution)\",\"copyclipboard\":\"Arbelean kopiatu\",\"startover\":\"Berrabiarazi\",\"startovertitle\":\"$t(button.startover)\",\"continue\":\"Jarraitu\",\"submitanswer\":\"Erantzuna bidali\",\"submitanswertitle\":\"$t(button.submitanswer)\",\"previoustopic\":\"Aurreko atala\",\"nexttopic\":\"Hurrengo atala\",\"questionsubmit\":\"$t(button.submitanswer)\",\"questiontryagain\":\"Berriro saiatu\"},\"text\":{\"startover\":\"Berrabiarazi\",\"areyousure\":\"Berriro hasi nahi duzu? (egindako lana galdu egingo da)\",\"youmustcomplete\":\"Aurrera egin baino lehen atal honetako\",\"exercise\":\"ariketa egin behar duzu.\",\"exercise_plural\":\"ariketak egin behar dituzu.\",\"inthissection\":\"\",\"code\":\"Kodea\",\"enginecap\":\"$t(text.code) {{engine}}\",\"quiz\":\"Galdetegia\",\"oxfordcomma\":\"\"}}},\"de\":{\"translation\":{\"button\":{\"runcode\":\"Code ausführen\",\"runcodetitle\":\"$t(button.runcode) ({{kbd}})\",\"hint\":\"Tipp\",\"hint_plural\":\"Tipps\",\"hinttitle\":\"$t(button.hint)\",\"hintnext\":\"Nächster Tipp\",\"hintprev\":\"Vorheriger Tipp\",\"solution\":\"Lösung\",\"solutiontitle\":\"$t(button.solution)\",\"copyclipboard\":\"In die Zwischenablage kopieren\",\"startover\":\"Neustart\",\"startovertitle\":\"$t(button.startover)\",\"continue\":\"Weiter\",\"submitanswer\":\"Antwort einreichen\",\"submitanswertitle\":\"$t(button.submitanswer)\",\"previoustopic\":\"Vorheriges Kapitel\",\"nexttopic\":\"Nächstes Kapitel\",\"questionsubmit\":\"$t(button.submitanswer)\",\"questiontryagain\":\"Nochmal versuchen\"},\"text\":{\"startover\":\"Neustart\",\"areyousure\":\"Bist du sicher, dass du neustarten willst? (der gesamte Lernfortschritt wird gelöscht)\",\"youmustcomplete\":\"Vervollstädinge\",\"exercise\":\"die Übung\",\"exercise_plural\":\"die Übungen\",\"inthissection\":\"in diesem Kapitel, bevor du fortfährst.\",\"code\":\"Code\",\"enginecap\":\"$t(text.code) {{engine}}\",\"quiz\":\"Quiz\",\"blank\":\"Lücke\",\"blank_plural\":\"Lücken\",\"pleasereplaceblank\":\"Bitte ersetze {{blank}} mit gültigem Code.\",\"unparsable\":\"Dies scheint kein gültiger R Code zu sein. R kann deinen Text nicht in einen gültigen Befehl übersetzen. Du hast vielleicht vergessen, die Lücke zu füllen, einen Unterstrich zu entfernen, ein Komma zwischen Argumente zu setzen oder ein eröffnendes <code>"<\\/code>, <code>'<\\/code>, <code>(<\\/code> oder <code>{<\\/code> mit einem zugehörigen <code>"<\\/code>, <code>'<\\/code>, <code>)<\\/code> oder <code>}<\\/code> zu schließen.\\n\",\"and\":\"und\",\"or\":\"oder\",\"listcomma\":\", \",\"oxfordcomma\":\",\"}}},\"ko\":{\"translation\":{\"button\":{\"runcode\":\"코드 실행\",\"runcodetitle\":\"$t(button.runcode) ({{kbd}})\",\"hint\":\"힌트\",\"hint_plural\":\"힌트들\",\"hinttitle\":\"$t(button.hint)\",\"hintnext\":\"다음 힌트\",\"hintprev\":\"이전 힌트\",\"solution\":\"솔루션\",\"solutiontitle\":\"$t(button.solution)\",\"copyclipboard\":\"클립보드에 복사\",\"startover\":\"재학습\",\"startovertitle\":\"$t(button.startover)\",\"continue\":\"다음 학습으로\",\"submitanswer\":\"정답 제출\",\"submitanswertitle\":\"$t(button.submitanswer)\",\"previoustopic\":\"이전 토픽\",\"nexttopic\":\"다음 토픽\",\"questionsubmit\":\"$t(button.submitanswer)\",\"questiontryagain\":\"재시도\"},\"text\":{\"startover\":\"재학습\",\"areyousure\":\"다시 시작 하시겠습니까? (모든 예제의 진행 정보가 재설정됩니다)\",\"youmustcomplete\":\"당신은 완료해야 합니다\",\"exercise\":\"연습문제\",\"exercise_plural\":\"연습문제들\",\"inthissection\":\"이 섹션을 실행하기 전에\",\"code\":\"코드\",\"enginecap\":\"$t(text.code) {{engine}}\",\"quiz\":\"퀴즈\",\"blank\":\"공백\",\"blank_plural\":\"공백들\",\"exercisecontainsblank\":\"이 연습문제에는 {{count}}개의 $t(text.blank)이 포함되어 있습니다.\",\"pleasereplaceblank\":\"{{blank}}를 유효한 코드로 바꾸십시오.\",\"unparsable\":\"이것은 유효한 R 코드가 아닐 수 있습니다. R은 텍스트를 완전한 명령으로 변환하는 방법을 결정할 수 없습니다. 당신은 공백이나 밑줄을 대체하여 채우기, 인수를 컴마로 구분하기, 또는 <code>"<\\/code>, <code>'<\\/code>, <code>(<\\/code> , <code>{<\\/code>로 시작하는 구문을 닫는 <code>"<\\/code>, <code>'<\\/code>, <code>)<\\/code>, <code>}<\\/code>을 잊었을 수도 있습니다.\\n\",\"and\":\"그리고\",\"or\":\"혹은\",\"listcomma\":\", \",\"oxfordcomma\":\"\"}}},\"zh\":{\"translation\":{\"button\":{\"runcode\":\"运行代码\",\"runcodetitle\":\"$t(button.runcode) ({{kbd}})\",\"hint\":\"提示\",\"hint_plural\":\"提示\",\"hinttitle\":\"$t(button.hint)\",\"hintnext\":\"下一个提示\",\"hintprev\":\"上一个提示\",\"solution\":\"答案\",\"solutiontitle\":\"$t(button.solution)\",\"copyclipboard\":\"复制到剪切板\",\"startover\":\"重新开始\",\"startovertitle\":\"$t(button.startover)\",\"continue\":\"继续\",\"submitanswer\":\"提交答案\",\"submitanswertitle\":\"$t(button.submitanswer)\",\"previoustopic\":\"上一专题\",\"nexttopic\":\"下一专题\",\"questionsubmit\":\"$t(button.submitanswer)\",\"questiontryagain\":\"再试一次\"},\"text\":{\"startover\":\"重置\",\"areyousure\":\"你确定要重新开始吗? (所有当前进度将被重置)\",\"youmustcomplete\":\"你必须完成\",\"exercise\":\"练习\",\"exercise_plural\":\"练习\",\"inthissection\":\"在进行本节之前\",\"code\":\"代码\",\"enginecap\":\"$t(text.code) {{engine}}\",\"quiz\":\"测试\",\"blank\":\"空\",\"blank_plural\":\"空\",\"exercisecontainsblank\":\"本练习包含{{count}}个$t(text.blank)\",\"pleasereplaceblank\":\"请在{{blank}}内填写恰当的代码\",\"unparsable\":\"这似乎不是有效的R代码。 R不知道如何将您的文本转换为完整的命令。 您是否忘了填空,忘了删除下划线,忘了在参数之间包含逗号,或者是忘了用<code>"<\\/code>, <code>'<\\/code>, <code>)<\\/code>,<code>}<\\/code>来封闭<code>"<\\/code>, <code>'<\\/code>, <code>(<\\/code>。 or <code>{<\\/code>。\\n\",\"unparsablequotes\":\"<p>您的R代码中似乎含有特殊格式的引号,或者弯引号(<code>{{character}}<\\/code>) 在字符串前后,在R中字符串应该被直引号(<code>"<\\/code> 或者 <code>'<\\/code>)包裹。<\\/p> {{code}} <p>别担心,该错误经常在复制粘贴包含格式的代码时遇到, 您可以尝试将该行中的代码替换为以下代码,也许还有其他地方需要修改。<\\/p> {{suggestion}}\\n\",\"unparsableunicode\":\"<p>您的代码中似乎包含有异常字符(<code>{{character}}<\\/code>),导致代码无效。<\\/p> {{code}} <p>有时候你的代码可能含有看似正常字符的特殊字符,特别是当你复制粘贴其他来源代码的时候。 请试着删除这些特殊字符,重新输入<\\/p>\\n\",\"unparsableunicodesuggestion\":\"<p>您的代码中似乎包含有异常字符(<code>{{character}}<\\/code>),导致代码无效。<\\/p> {{code}} <p>有时候你的代码可能含有看似正常字符的特殊字符,特别是当你复制粘贴其他来源代码的时候。 请试着删除这些特殊字符,重新输入<\\/p>\\n\",\"and\":\"且\",\"or\":\"或\",\"listcomma\":\",\",\"oxfordcomma\":\",\"}}},\"pl\":{\"translation\":{\"button\":{\"runcode\":\"Uruchom kod\",\"runcodetitle\":\"$t(button.runcode) ({{kbd}})\",\"hint\":\"Podpowiedź\",\"hint_plural\":\"Podpowiedzi\",\"hinttitle\":\"$t(button.hint)\",\"hintnext\":\"Następna podpowiedź\",\"hintprev\":\"Poprzednia podpowiedź\",\"solution\":\"Rozwiązanie\",\"solutiontitle\":\"$t(button.solution)\",\"copyclipboard\":\"Kopiuj do schowka\",\"startover\":\"Zacznij od początku\",\"startovertitle\":\"$t(button.startover)\",\"continue\":\"Kontynuuj\",\"submitanswer\":\"Wyślij\",\"submitanswertitle\":\"$t(button.submitanswer)\",\"previoustopic\":\"Poprzednia sekcja\",\"nexttopic\":\"Następna sekcja\",\"questionsubmit\":\"$t(button.submitanswer)\",\"questiontryagain\":\"Spróbuj ponownie\"},\"text\":{\"startover\":\"Zacznij od początku\",\"areyousure\":\"Czy na pewno chcesz zacząć od początku? (cały postęp w zadaniu zostanie utracony)\",\"youmustcomplete\":\"Musisz ukończyć\",\"exercise\":\"ćwiczenie\",\"exercise_plural\":\"ćwiczenia\",\"inthissection\":\"w tej sekcji przed kontynuowaniem\",\"code\":\"Kod\",\"enginecap\":\"$t(text.code) {{engine}}\",\"quiz\":\"Quiz\",\"blank\":\"luka\",\"blank_plural\":\"luk(i)\",\"exercisecontainsblank\":\"To ćwiczenie zawiera {{count}} $t(text.blank).\",\"pleasereplaceblank\":\"Proszę uzupełnić {{blank}} prawidłowym kodem.\",\"unparsable\":\"Wygląda na to, że może to nie być prawidłowy kod R. R nie jest w stanie przetworzyć Twojego tekstu na polecenie. Mogłeś(-aś) zapomnieć wypełnić luki, usunąć podkreślnik, umieścić przecinka między argumentami, lub zamknąć znak <code>"<\\/code>, <code>'<\\/code>, <code>(<\\/code> lub <code>{<\\/code> odpowiadającym <code>"<\\/code>, <code>'<\\/code>, <code>)<\\/code> lub <code>}<\\/code>.\\n\",\"unparsablequotes\":\"<p>Wygląda na to, że Twój kod zawiera szczególnie sformatowane cudzysłowy lub cudzysłowy typograficzne (<code>{{character}}<\\/code>) przy ciągach znaków, co sprawia, że kod jest niepoprawny. R wymaga cudzysłowów prostych (<code>"<\\/code> albo <code>'<\\/code>).<\\/p> {{code}} <p>Nie martw się, to powszechne źródło błędów, gdy kopiuje się kod z innego programu, który sam formatuje teskt. Możesz spróbować zastąpić swój kod następującym kodem. Mogą być też inne miejsca, które wymagają poprawienia.<\\/p> {{suggestion}}\\n\",\"unparsableunicode\":\"<p>Wygląda na to, że Twój kod zawiera niespodziewany znak specjalny (<code>{{character}}<\\/code>), co sprawia, że kod jest niepoprawny.<\\/p> {{code}} <p>Czasami Twój kod może zawierać znak specjalny, który wygląda jak zwykły znak, zwłaszcza jeśli kopiujesz kod z innego programu. Spróbuj usunąć znak specjalny i wpisać do ponownie ręcznie.<\\/p>\\n\",\"unparsableunicodesuggestion\":\"<p>Wygląda na to, że Twój kod zawiera niespodziewany znak specjalny (<code>{{character}}<\\/code>), co sprawia, że kod jest niepoprawny.<\\/p> {{code}} <p>Czasami Twój kod może zawierać znak specjalny, który wygląda jak zwykły znak, zwłaszcza jeśli kopiujesz kod z innego programu. Możesz spróbować zastąpić swój kod następującym kodem. Mogą być też inne miejsca, które wymagają poprawienia.<\\/p> {{suggestion}}\\n\",\"and\":\"i\",\"or\":\"lub\",\"listcomma\":\", \",\"oxfordcomma\":\"\"}}}}}<\/script>"]},{"type":"NULL"},{"type":"character","attributes":{},"value":["learnr"]},{"type":"logical","attributes":{},"value":[true]},{"type":"character","attributes":{},"value":["0.11.5"]}]},{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["name","version","src","meta","script","stylesheet","head","attachment","package","all_files","pkgVersion"]},"class":{"type":"character","attributes":{},"value":["html_dependency"]}},"value":[{"type":"character","attributes":{},"value":["tutorial-format"]},{"type":"character","attributes":{},"value":["0.11.5"]},{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["file"]}},"value":[{"type":"character","attributes":{},"value":["rmarkdown/templates/tutorial/resources"]}]},{"type":"NULL"},{"type":"character","attributes":{},"value":["tutorial-format.js"]},{"type":"character","attributes":{},"value":["tutorial-format.css"]},{"type":"NULL"},{"type":"NULL"},{"type":"character","attributes":{},"value":["learnr"]},{"type":"logical","attributes":{},"value":[true]},{"type":"character","attributes":{},"value":["0.11.5"]}]},{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["name","version","src","meta","script","stylesheet","head","attachment","package","all_files","pkgVersion"]},"class":{"type":"character","attributes":{},"value":["html_dependency"]}},"value":[{"type":"character","attributes":{},"value":["jquery"]},{"type":"character","attributes":{},"value":["3.6.0"]},{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["file"]}},"value":[{"type":"character","attributes":{},"value":["lib/3.6.0"]}]},{"type":"NULL"},{"type":"character","attributes":{},"value":["jquery-3.6.0.min.js"]},{"type":"NULL"},{"type":"NULL"},{"type":"NULL"},{"type":"character","attributes":{},"value":["jquerylib"]},{"type":"logical","attributes":{},"value":[true]},{"type":"character","attributes":{},"value":["0.1.4"]}]},{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["name","version","src","meta","script","stylesheet","head","attachment","package","all_files","pkgVersion"]},"class":{"type":"character","attributes":{},"value":["html_dependency"]}},"value":[{"type":"character","attributes":{},"value":["navigation"]},{"type":"character","attributes":{},"value":["1.1"]},{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["file"]}},"value":[{"type":"character","attributes":{},"value":["rmd/h/navigation-1.1"]}]},{"type":"NULL"},{"type":"character","attributes":{},"value":["tabsets.js"]},{"type":"NULL"},{"type":"NULL"},{"type":"NULL"},{"type":"character","attributes":{},"value":["rmarkdown"]},{"type":"logical","attributes":{},"value":[true]},{"type":"character","attributes":{},"value":["2.27"]}]},{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["name","version","src","meta","script","stylesheet","head","attachment","package","all_files","pkgVersion"]},"class":{"type":"character","attributes":{},"value":["html_dependency"]}},"value":[{"type":"character","attributes":{},"value":["highlightjs"]},{"type":"character","attributes":{},"value":["9.12.0"]},{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["file"]}},"value":[{"type":"character","attributes":{},"value":["rmd/h/highlightjs"]}]},{"type":"NULL"},{"type":"character","attributes":{},"value":["highlight.js"]},{"type":"character","attributes":{},"value":["default.css"]},{"type":"NULL"},{"type":"NULL"},{"type":"character","attributes":{},"value":["rmarkdown"]},{"type":"logical","attributes":{},"value":[true]},{"type":"character","attributes":{},"value":["2.27"]}]},{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["name","version","src","meta","script","stylesheet","head","attachment","package","all_files","pkgVersion"]},"class":{"type":"character","attributes":{},"value":["html_dependency"]}},"value":[{"type":"character","attributes":{},"value":["jquery"]},{"type":"character","attributes":{},"value":["3.6.0"]},{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["file"]}},"value":[{"type":"character","attributes":{},"value":["lib/3.6.0"]}]},{"type":"NULL"},{"type":"character","attributes":{},"value":["jquery-3.6.0.min.js"]},{"type":"NULL"},{"type":"NULL"},{"type":"NULL"},{"type":"character","attributes":{},"value":["jquerylib"]},{"type":"logical","attributes":{},"value":[true]},{"type":"character","attributes":{},"value":["0.1.4"]}]},{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["name","version","src","meta","script","stylesheet","head","attachment","package","all_files","pkgVersion"]},"class":{"type":"character","attributes":{},"value":["html_dependency"]}},"value":[{"type":"character","attributes":{},"value":["font-awesome"]},{"type":"character","attributes":{},"value":["6.4.2"]},{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["file"]}},"value":[{"type":"character","attributes":{},"value":["fontawesome"]}]},{"type":"NULL"},{"type":"NULL"},{"type":"character","attributes":{},"value":["css/all.min.css","css/v4-shims.min.css"]},{"type":"NULL"},{"type":"NULL"},{"type":"character","attributes":{},"value":["fontawesome"]},{"type":"logical","attributes":{},"value":[true]},{"type":"character","attributes":{},"value":["0.5.2"]}]},{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["name","version","src","meta","script","stylesheet","head","attachment","package","all_files","pkgVersion"]},"class":{"type":"character","attributes":{},"value":["html_dependency"]}},"value":[{"type":"character","attributes":{},"value":["bootbox"]},{"type":"character","attributes":{},"value":["5.5.2"]},{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["file"]}},"value":[{"type":"character","attributes":{},"value":["lib/bootbox"]}]},{"type":"NULL"},{"type":"character","attributes":{},"value":["bootbox.min.js"]},{"type":"NULL"},{"type":"NULL"},{"type":"NULL"},{"type":"character","attributes":{},"value":["learnr"]},{"type":"logical","attributes":{},"value":[true]},{"type":"character","attributes":{},"value":["0.11.5"]}]},{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["name","version","src","meta","script","stylesheet","head","attachment","package","all_files","pkgVersion"]},"class":{"type":"character","attributes":{},"value":["html_dependency"]}},"value":[{"type":"character","attributes":{},"value":["idb-keyvalue"]},{"type":"character","attributes":{},"value":["3.2.0"]},{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["file"]}},"value":[{"type":"character","attributes":{},"value":["lib/idb-keyval"]}]},{"type":"NULL"},{"type":"character","attributes":{},"value":["idb-keyval-iife-compat.min.js"]},{"type":"NULL"},{"type":"NULL"},{"type":"NULL"},{"type":"character","attributes":{},"value":["learnr"]},{"type":"logical","attributes":{},"value":[false]},{"type":"character","attributes":{},"value":["0.11.5"]}]},{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["name","version","src","meta","script","stylesheet","head","attachment","package","all_files","pkgVersion"]},"class":{"type":"character","attributes":{},"value":["html_dependency"]}},"value":[{"type":"character","attributes":{},"value":["tutorial"]},{"type":"character","attributes":{},"value":["0.11.5"]},{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["file"]}},"value":[{"type":"character","attributes":{},"value":["lib/tutorial"]}]},{"type":"NULL"},{"type":"character","attributes":{},"value":["tutorial.js"]},{"type":"character","attributes":{},"value":["tutorial.css"]},{"type":"NULL"},{"type":"NULL"},{"type":"character","attributes":{},"value":["learnr"]},{"type":"logical","attributes":{},"value":[true]},{"type":"character","attributes":{},"value":["0.11.5"]}]},{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["name","version","src","meta","script","stylesheet","head","attachment","package","all_files","pkgVersion"]},"class":{"type":"character","attributes":{},"value":["html_dependency"]}},"value":[{"type":"character","attributes":{},"value":["ace"]},{"type":"character","attributes":{},"value":["1.10.1"]},{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["file"]}},"value":[{"type":"character","attributes":{},"value":["lib/ace"]}]},{"type":"NULL"},{"type":"character","attributes":{},"value":["ace.js"]},{"type":"NULL"},{"type":"NULL"},{"type":"NULL"},{"type":"character","attributes":{},"value":["learnr"]},{"type":"logical","attributes":{},"value":[true]},{"type":"character","attributes":{},"value":["0.11.5"]}]},{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["name","version","src","meta","script","stylesheet","head","attachment","package","all_files","pkgVersion"]},"class":{"type":"character","attributes":{},"value":["html_dependency"]}},"value":[{"type":"character","attributes":{},"value":["clipboardjs"]},{"type":"character","attributes":{},"value":["2.0.10"]},{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["file"]}},"value":[{"type":"character","attributes":{},"value":["lib/clipboardjs"]}]},{"type":"NULL"},{"type":"character","attributes":{},"value":["clipboard.min.js"]},{"type":"NULL"},{"type":"NULL"},{"type":"NULL"},{"type":"character","attributes":{},"value":["learnr"]},{"type":"logical","attributes":{},"value":[true]},{"type":"character","attributes":{},"value":["0.11.5"]}]},{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["name","version","src","meta","script","stylesheet","head","attachment","package","all_files","pkgVersion"]},"class":{"type":"character","attributes":{},"value":["html_dependency"]}},"value":[{"type":"character","attributes":{},"value":["ace"]},{"type":"character","attributes":{},"value":["1.10.1"]},{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["file"]}},"value":[{"type":"character","attributes":{},"value":["lib/ace"]}]},{"type":"NULL"},{"type":"character","attributes":{},"value":["ace.js"]},{"type":"NULL"},{"type":"NULL"},{"type":"NULL"},{"type":"character","attributes":{},"value":["learnr"]},{"type":"logical","attributes":{},"value":[true]},{"type":"character","attributes":{},"value":["0.11.5"]}]},{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["name","version","src","meta","script","stylesheet","head","attachment","package","all_files","pkgVersion"]},"class":{"type":"character","attributes":{},"value":["html_dependency"]}},"value":[{"type":"character","attributes":{},"value":["clipboardjs"]},{"type":"character","attributes":{},"value":["2.0.10"]},{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["file"]}},"value":[{"type":"character","attributes":{},"value":["lib/clipboardjs"]}]},{"type":"NULL"},{"type":"character","attributes":{},"value":["clipboard.min.js"]},{"type":"NULL"},{"type":"NULL"},{"type":"NULL"},{"type":"character","attributes":{},"value":["learnr"]},{"type":"logical","attributes":{},"value":[true]},{"type":"character","attributes":{},"value":["0.11.5"]}]},{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["name","version","src","meta","script","stylesheet","head","attachment","package","all_files","pkgVersion"]},"class":{"type":"character","attributes":{},"value":["html_dependency"]}},"value":[{"type":"character","attributes":{},"value":["ace"]},{"type":"character","attributes":{},"value":["1.10.1"]},{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["file"]}},"value":[{"type":"character","attributes":{},"value":["lib/ace"]}]},{"type":"NULL"},{"type":"character","attributes":{},"value":["ace.js"]},{"type":"NULL"},{"type":"NULL"},{"type":"NULL"},{"type":"character","attributes":{},"value":["learnr"]},{"type":"logical","attributes":{},"value":[true]},{"type":"character","attributes":{},"value":["0.11.5"]}]},{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["name","version","src","meta","script","stylesheet","head","attachment","package","all_files","pkgVersion"]},"class":{"type":"character","attributes":{},"value":["html_dependency"]}},"value":[{"type":"character","attributes":{},"value":["clipboardjs"]},{"type":"character","attributes":{},"value":["2.0.10"]},{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["file"]}},"value":[{"type":"character","attributes":{},"value":["lib/clipboardjs"]}]},{"type":"NULL"},{"type":"character","attributes":{},"value":["clipboard.min.js"]},{"type":"NULL"},{"type":"NULL"},{"type":"NULL"},{"type":"character","attributes":{},"value":["learnr"]},{"type":"logical","attributes":{},"value":[true]},{"type":"character","attributes":{},"value":["0.11.5"]}]},{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["name","version","src","meta","script","stylesheet","head","attachment","package","all_files","pkgVersion"]},"class":{"type":"character","attributes":{},"value":["html_dependency"]}},"value":[{"type":"character","attributes":{},"value":["ace"]},{"type":"character","attributes":{},"value":["1.10.1"]},{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["file"]}},"value":[{"type":"character","attributes":{},"value":["lib/ace"]}]},{"type":"NULL"},{"type":"character","attributes":{},"value":["ace.js"]},{"type":"NULL"},{"type":"NULL"},{"type":"NULL"},{"type":"character","attributes":{},"value":["learnr"]},{"type":"logical","attributes":{},"value":[true]},{"type":"character","attributes":{},"value":["0.11.5"]}]},{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["name","version","src","meta","script","stylesheet","head","attachment","package","all_files","pkgVersion"]},"class":{"type":"character","attributes":{},"value":["html_dependency"]}},"value":[{"type":"character","attributes":{},"value":["clipboardjs"]},{"type":"character","attributes":{},"value":["2.0.10"]},{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["file"]}},"value":[{"type":"character","attributes":{},"value":["lib/clipboardjs"]}]},{"type":"NULL"},{"type":"character","attributes":{},"value":["clipboard.min.js"]},{"type":"NULL"},{"type":"NULL"},{"type":"NULL"},{"type":"character","attributes":{},"value":["learnr"]},{"type":"logical","attributes":{},"value":[true]},{"type":"character","attributes":{},"value":["0.11.5"]}]},{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["name","version","src","meta","script","stylesheet","head","attachment","package","all_files","pkgVersion"]},"class":{"type":"character","attributes":{},"value":["html_dependency"]}},"value":[{"type":"character","attributes":{},"value":["ace"]},{"type":"character","attributes":{},"value":["1.10.1"]},{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["file"]}},"value":[{"type":"character","attributes":{},"value":["lib/ace"]}]},{"type":"NULL"},{"type":"character","attributes":{},"value":["ace.js"]},{"type":"NULL"},{"type":"NULL"},{"type":"NULL"},{"type":"character","attributes":{},"value":["learnr"]},{"type":"logical","attributes":{},"value":[true]},{"type":"character","attributes":{},"value":["0.11.5"]}]},{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["name","version","src","meta","script","stylesheet","head","attachment","package","all_files","pkgVersion"]},"class":{"type":"character","attributes":{},"value":["html_dependency"]}},"value":[{"type":"character","attributes":{},"value":["clipboardjs"]},{"type":"character","attributes":{},"value":["2.0.10"]},{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["file"]}},"value":[{"type":"character","attributes":{},"value":["lib/clipboardjs"]}]},{"type":"NULL"},{"type":"character","attributes":{},"value":["clipboard.min.js"]},{"type":"NULL"},{"type":"NULL"},{"type":"NULL"},{"type":"character","attributes":{},"value":["learnr"]},{"type":"logical","attributes":{},"value":[true]},{"type":"character","attributes":{},"value":["0.11.5"]}]}]}
</script>
<!--/html_preserve-->
<!--html_preserve-->
<script type="application/shiny-prerendered" data-context="execution_dependencies">
{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["packages"]}},"value":[{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["packages","version"]},"class":{"type":"character","attributes":{},"value":["data.frame"]},"row.names":{"type":"integer","attributes":{},"value":[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]}},"value":[{"type":"character","attributes":{},"value":["backports","base","bslib","cachem","checkmate","cli","colorspace","compiler","datasets","digest","dplyr","evaluate","fansi","fastmap","fontawesome","forcats","generics","ggplot2","glue","graphics","grDevices","grid","gtable","hms","htmltools","htmlwidgets","httpuv","jquerylib","jsonlite","knitr","later","lattice","learnr","lifecycle","lubridate","magrittr","methods","mime","munsell","pillar","pkgconfig","promises","purrr","R6","Rcpp","readr","rlang","rmarkdown","rprojroot","rstudioapi","sass","scales","shiny","stats","stringi","stringr","tibble","tidyr","tidyselect","tidyverse","timechange","tools","tzdb","utf8","utils","vctrs","withr","xfun","xtable","yaml","zoo"]},{"type":"character","attributes":{},"value":["1.5.0","4.4.1","0.7.0","1.1.0","2.3.1","3.6.2","2.1-0","4.4.1","4.4.1","0.6.35","1.1.4","0.23","1.0.6","1.2.0","0.5.2","1.0.0","0.1.3","3.5.1","1.7.0","4.4.1","4.4.1","4.4.1","0.3.5","1.1.3","0.5.8.1","1.6.4","1.6.15","0.1.4","1.8.8","1.47","1.3.2","0.22-6","0.11.5","1.0.4","1.9.3","2.0.3","4.4.1","0.12","0.5.1","1.9.0","2.0.3","1.3.0","1.0.2","2.5.1","1.0.12","2.1.5","1.1.3","2.27","2.0.4","0.16.0","0.4.9","1.3.0","1.8.1.1","4.4.1","1.8.4","1.5.1","3.2.1","1.3.1","1.2.1","2.0.0","0.3.0","4.4.1","0.4.0","1.2.4","4.4.1","0.6.5","3.0.0","0.44","1.8-4","2.3.8","1.8-12"]}]}]}
</script>
<!--/html_preserve-->
</div>
</div>
</article> <!-- topics -->
<div class="topicsContainer">
<div class="topicsPositioner">
<div class="band">
<div class="bandContent topicsListContainer">
<!-- begin doc-metadata -->
<div id="doc-metadata">
<h1 class="title toc-ignore" style="display:none;">Observations III</h1>
<h4 class="author"><em>KGA320: Our Changing Climate</em></h4>
<h4 class="date"><em>Semester 2 2024</em></h4>
</div>
<!-- end doc-metadata -->
</div> <!-- bandContent.topicsListContainer -->
</div> <!-- band -->
</div> <!-- topicsPositioner -->
</div> <!-- topicsContainer -->
</main> <!-- bandContent page -->
</div> <!-- pageContent band -->
<!-- Build Tabsets -->
<script>
$(document).ready(function () {
window.buildTabsets("section-TOC");
});
$(document).ready(function () {
$('.tabset-dropdown > .nav-tabs > li').click(function () {
$(this).parent().toggleClass('nav-tabs-open')
});
});
</script>
<script>
// add bootstrap table styles to pandoc tables
function bootstrapStylePandocTables() {
$('tr.header').parent('thead').parent('table').addClass('table table-condensed');
}
$(document).ready(function () {
bootstrapStylePandocTables();
});
</script>
<!-- dynamically load mathjax for compatibility with self-contained -->
<script>
(function () {
var script = document.createElement("script");
script.type = "text/javascript";
script.src = "https://mathjax.rstudio.com/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML";
document.getElementsByTagName("head")[0].appendChild(script);
})();
</script>
</body>
</html>