Files and Folders
It is essential that you name your folders and files
exactly as specified. We will run checks like
cd HW1
Rscript -e 'rmarkdown::render("hw1.Rmd")'
from the top of a clone of your repository. If the folders and files
are not named exactly as specified these checks will
fail.
Consistent file naming is often an important part of a data analysis
project. Consistent use of upper and lower case letters is important for
an analysis to be reproducible. These may seem like small issues, but if
your files do not use the conventions your code expects then the code
will fail.
There are two kinds of file systems in common use:
Case preserving but case insensitive (Windows,
most Mac OS): If you create a file as hw1.Rmd it will be
shown with this spelling, but you can also access it with the name
Hw1.rMd and other case variations.
Case sensitive (some Mac OS, Linux): You can
have separate files named hw1.Rmd and
Hw1.rMd.
To make your work as reproducible as possible:
Always use the same naming and case conventions,
even on a case insensitive system.
Never create two files with names that differ
only in case, even if your file system is case sensitive and allows
this.
Reproducibility
Make sure your .Rmd file will knit without errors.
Except for packages your code should not depend on anything not
contained in your repository.
Your code should not attempt to make any modifications outside
your repository, including installing packages.
Use only relative path names, relative to the location of your
.Rmd file, when referring to files of directories.
The function checkHW in the STAT4580
package can be used for checking that your files are named properly and
that your Rmarkdown file renders without error with a fresh checkout.
Tests are most thorough if you run them on the CLAS Linux systems.
For now, if your submission does not knit successfully on our test
systems (the CLAS Linux
systems) we will:
- Fix your
.Rmd file, commit the changes, and push them
to your UI GitLab repository.
- Open an issue on GitLab notifying you of the change. The
issue is assigned to you, which generates an email to you.
- You will need to pull our changes to bring them into your local
repository. Be sure to do this before starting work on your next
assignment.
- There will of course be a deduction if we have to do this.
Rmarkdown Usage and Coding Style
Make sure you are using Rmarkdown properly, with explanatory texts
surrounding short code chunks. In particular you should not have just
one big code chunk.
Your Rmarkdown code and your R code should be readable, and the R
code should follow the coding standards. This
makes maintaining your code and document easier.
Your rendered HTML page should be a report with text supporting
numerical and graphical results. Code only needs to be visible if you
are explaining how to do something (which is a goal of the class
notes).
You can use chunk options to hide code and show only results. For
example, the chunk
```{r, echo = FALSE}
hist(faithful$waiting)
```
will show only the plot and not the code.
Numbers in your text inserted with inline code and numbers in
tables should be rounded to an appropriate number of decimals. The
round() function can be used in inline code. The
kable() functions have options for controlling the number
of digits.
Your homework solutions should use the same headers as the
assignment to make it easier to grade. The assignment problem headers
are all level two headers, created by starting a line with
##.
The text should be all your own, not stray material from
templates.
Name and Date
Make sure your Rmarkdown file header contains a name:
field with your name; a date: field with an appropriate
date is also useful.
Your header should look something like this:
---
title: "Assignment 1"
output: html_document
name: "Your Name"
date: "January 23, 2026"
---
The template shows a way to have the current
date inserted.
The following is a sample solution.
1. Average Waiting Time Between Eruptions
The average waiting time between eruptions of the Old
Faithful geyser in the data set faithful is 70.9
minutes.
2. First Four Eruption Durations
The first four eruption durations can be computed using by using the
$ operator to extract the eruptions variable,
and then the subset operator to get the subset of the first four
observations:
faithful$eruptions[1 : 4]
## [1] 3.600 1.800 3.333 2.283
3. First Five Records of the Eruptions Data
The following table shows the first five eruption durations and
waiting times to the subsequent eruption for the Old Faithful
geyser recorded in the faithful data frame. Times are in
minutes.
|
eruptions
|
waiting
|
|
3.60
|
79
|
|
1.80
|
54
|
|
3.33
|
74
|
|
2.28
|
62
|
|
4.53
|
85
|
4. Histogram of Eruption Durations
The following plot shows a histogram of the eruption durations for
the faithful data set.

The distribution appears to be bimodal, with one mode around 2
minutes and one around 4.5 minutes.
LS0tCnRpdGxlOiAiQXNzaWdubWVudCAxIE5vdGVzIgpvdXRwdXQ6CiAgaHRtbF9kb2N1bWVudDoKICAgIHRvYzogeWVzCiAgICBjb2RlX2Rvd25sb2FkOiB0cnVlCi0tLQoKYGBge3IgZ2xvYmFsX29wdGlvbnMsIGluY2x1ZGUgPSBGQUxTRX0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KGNvbGxhcHNlID0gVFJVRSkKYGBgCgojIyBGaWxlcyBhbmQgRm9sZGVycwoKSXQgaXMgZXNzZW50aWFsIHRoYXQgeW91IG5hbWUgeW91ciBmb2xkZXJzIGFuZCBmaWxlcyAqKmV4YWN0bHkqKiBhcwpzcGVjaWZpZWQuIFdlIHdpbGwgcnVuIGNoZWNrcyBsaWtlCmBgYHNoZWxsCmNkIEhXMQpSc2NyaXB0IC1lICdybWFya2Rvd246OnJlbmRlcigiaHcxLlJtZCIpJwpgYGAKZnJvbSB0aGUgdG9wIG9mIGEgY2xvbmUgb2YgeW91ciByZXBvc2l0b3J5LiBJZiB0aGUgZm9sZGVycwphbmQgZmlsZXMgYXJlIG5vdCBuYW1lZCAqKmV4YWN0bHkqKiBhcyBzcGVjaWZpZWQgdGhlc2UgY2hlY2tzIHdpbGwgZmFpbC4KCkNvbnNpc3RlbnQgZmlsZSBuYW1pbmcgaXMgb2Z0ZW4gYW4gaW1wb3J0YW50IHBhcnQgb2YgYSBkYXRhIGFuYWx5c2lzCnByb2plY3QuICBDb25zaXN0ZW50IHVzZSBvZiB1cHBlciBhbmQgbG93ZXIgY2FzZSBsZXR0ZXJzIGlzIGltcG9ydGFudApmb3IgYW4gYW5hbHlzaXMgdG8gYmUgcmVwcm9kdWNpYmxlLiAgVGhlc2UgbWF5IHNlZW0gbGlrZSBzbWFsbCBpc3N1ZXMsCmJ1dCBpZiB5b3VyIGZpbGVzIGRvIG5vdCB1c2UgdGhlIGNvbnZlbnRpb25zIHlvdXIgY29kZSBleHBlY3RzIHRoZW4KdGhlIGNvZGUgd2lsbCBmYWlsLgoKVGhlcmUgYXJlIHR3byBraW5kcyBvZiBmaWxlIHN5c3RlbXMgaW4gY29tbW9uIHVzZToKCiogKipDYXNlIHByZXNlcnZpbmcgYnV0IGNhc2UgaW5zZW5zaXRpdmUqKiAoV2luZG93cywgbW9zdCBNYWMgT1MpOiBJZiB5b3UKICBjcmVhdGUgYSBmaWxlIGFzIGBodzEuUm1kYCBpdCB3aWxsIGJlIHNob3duIHdpdGggdGhpcyBzcGVsbGluZywgYnV0CiAgeW91IGNhbiBhbHNvIGFjY2VzcyBpdCB3aXRoIHRoZSBuYW1lIGBIdzEuck1kYCBhbmQgb3RoZXIgY2FzZQogIHZhcmlhdGlvbnMuCgoqICoqQ2FzZSBzZW5zaXRpdmUqKiAoc29tZSBNYWMgT1MsIExpbnV4KTogWW91IGNhbiBoYXZlIHNlcGFyYXRlIGZpbGVzCiAgbmFtZWQgYGh3MS5SbWRgIGFuZCBgSHcxLnJNZGAuCiAgClRvIG1ha2UgeW91ciB3b3JrIGFzIHJlcHJvZHVjaWJsZSBhcyBwb3NzaWJsZToKCiogKipBbHdheXMqKiB1c2UgdGhlIHNhbWUgbmFtaW5nIGFuZCBjYXNlIGNvbnZlbnRpb25zLCBldmVuIG9uIGEgY2FzZQogIGluc2Vuc2l0aXZlIHN5c3RlbS4KCiogKipOZXZlcioqIGNyZWF0ZSB0d28gZmlsZXMgd2l0aCBuYW1lcyB0aGF0IGRpZmZlciBvbmx5IGluIGNhc2UsIGV2ZW4KICBpZiB5b3VyIGZpbGUgc3lzdGVtIGlzIGNhc2Ugc2Vuc2l0aXZlIGFuZCBhbGxvd3MgdGhpcy4KCgojIyBSZXByb2R1Y2liaWxpdHkKCk1ha2Ugc3VyZSB5b3VyIGAuUm1kYCBmaWxlIHdpbGwga25pdCB3aXRob3V0IGVycm9ycy4KCiAgKiBFeGNlcHQgZm9yIHBhY2thZ2VzIHlvdXIgY29kZSBzaG91bGQgbm90IGRlcGVuZCBvbiBhbnl0aGluZyBub3QKICAgIGNvbnRhaW5lZCBpbiB5b3VyIHJlcG9zaXRvcnkuCgogICogWW91ciBjb2RlIHNob3VsZCBub3QgYXR0ZW1wdCB0byBtYWtlIGFueSBtb2RpZmljYXRpb25zIG91dHNpZGUKICAgIHlvdXIgcmVwb3NpdG9yeSwgaW5jbHVkaW5nIGluc3RhbGxpbmcgcGFja2FnZXMuCgogICogVXNlIG9ubHkgcmVsYXRpdmUgcGF0aCBuYW1lcywgcmVsYXRpdmUgdG8gdGhlIGxvY2F0aW9uIG9mIHlvdXIKICAgIGAuUm1kYCBmaWxlLCB3aGVuIHJlZmVycmluZyB0byBmaWxlcyBvZiBkaXJlY3Rvcmllcy4KICAKVGhlIGZ1bmN0aW9uIGBjaGVja0hXYCBpbiB0aGUgYFNUQVQ0NTgwYCBwYWNrYWdlIGNhbiBiZSB1c2VkIGZvcgpjaGVja2luZyB0aGF0IHlvdXIgZmlsZXMgYXJlIG5hbWVkIHByb3Blcmx5IGFuZCB0aGF0IHlvdXIgUm1hcmtkb3duCmZpbGUgcmVuZGVycyB3aXRob3V0IGVycm9yIHdpdGggYSBmcmVzaCBjaGVja291dC4gVGVzdHMgYXJlIG1vc3QKdGhvcm91Z2ggaWYgeW91IHJ1biB0aGVtIG9uIHRoZSBDTEFTIExpbnV4IHN5c3RlbXMuCgpGb3Igbm93LCBpZiB5b3VyIHN1Ym1pc3Npb24gZG9lcyBub3Qga25pdCBzdWNjZXNzZnVsbHkgb24gb3VyIHRlc3QKc3lzdGVtcyAodGhlIFtDTEFTIExpbnV4IHN5c3RlbXNdKGh0dHBzOi8vZmFzdHguZGl2bXMudWlvd2EuZWR1KSkgd2UKd2lsbDoKCiAgKiBGaXggeW91ciBgLlJtZGAgZmlsZSwgY29tbWl0IHRoZSBjaGFuZ2VzLCBhbmQgcHVzaCB0aGVtIHRvIHlvdXIKICAgIFVJIEdpdExhYiByZXBvc2l0b3J5LgogICogT3BlbiBhbiBfaXNzdWVfIG9uIEdpdExhYiBub3RpZnlpbmcgeW91IG9mIHRoZSBjaGFuZ2UuIFRoZSBpc3N1ZQogICAgaXMgX2Fzc2lnbmVkXyB0byB5b3UsIHdoaWNoIGdlbmVyYXRlcyBhbiBlbWFpbCB0byB5b3UuCiAgKiBZb3Ugd2lsbCBuZWVkIHRvIHB1bGwgb3VyIGNoYW5nZXMgdG8gYnJpbmcgdGhlbSBpbnRvIHlvdXIgbG9jYWwKICAgIHJlcG9zaXRvcnkuICoqQmUgc3VyZSB0byBkbyB0aGlzIGJlZm9yZSBzdGFydGluZyB3b3JrIG9uIHlvdXIgbmV4dAogICAgYXNzaWdubWVudC4qKgogICogVGhlcmUgd2lsbCBvZiBjb3Vyc2UgYmUgYSBkZWR1Y3Rpb24gaWYgd2UgaGF2ZSB0byBkbyB0aGlzLgoKCiMjIFJtYXJrZG93biBVc2FnZSBhbmQgQ29kaW5nIFN0eWxlCgpNYWtlIHN1cmUgeW91IGFyZSB1c2luZyBSbWFya2Rvd24gcHJvcGVybHksIHdpdGggZXhwbGFuYXRvcnkgdGV4dHMKc3Vycm91bmRpbmcgc2hvcnQgY29kZSBjaHVua3MuIEluIHBhcnRpY3VsYXIgeW91IHNob3VsZCBub3QgaGF2ZSBqdXN0Cm9uZSBiaWcgY29kZSBjaHVuay4KCiAgKiBZb3VyIFJtYXJrZG93biBjb2RlIGFuZCB5b3VyIFIgY29kZSBzaG91bGQgYmUgcmVhZGFibGUsIGFuZCB0aGUgUgogICAgY29kZSBzaG91bGQgZm9sbG93IHRoZSBbY29kaW5nIHN0YW5kYXJkc10oY29kaW5nLmh0bWwpLiBUaGlzIG1ha2VzCiAgICBtYWludGFpbmluZyB5b3VyIGNvZGUgYW5kIGRvY3VtZW50IGVhc2llci4KCiAgKiBZb3VyIHJlbmRlcmVkIEhUTUwgcGFnZSBzaG91bGQgYmUgYSByZXBvcnQgd2l0aCB0ZXh0IHN1cHBvcnRpbmcKICAgIG51bWVyaWNhbCBhbmQgZ3JhcGhpY2FsIHJlc3VsdHMuIENvZGUgb25seSBuZWVkcyB0byBiZSB2aXNpYmxlIGlmCiAgICB5b3UgYXJlIGV4cGxhaW5pbmcgaG93IHRvIGRvIHNvbWV0aGluZyAod2hpY2ggaXMgYSBnb2FsIG9mIHRoZSBjbGFzcwogICAgbm90ZXMpLgoKICAgIFlvdSBjYW4gdXNlIGNodW5rIG9wdGlvbnMgdG8gaGlkZSBjb2RlIGFuZCBzaG93IG9ubHkgcmVzdWx0cy4gRm9yCiAgICBleGFtcGxlLCB0aGUgY2h1bmsKCiAgICA8IS0tIHN5bnRheCBmcm9tIGh0dHBzOi8veWlodWkubmFtZS9lbi8yMDE3LzExL2tuaXRyLXZlcmJhdGltLWNvZGUtY2h1bmsvIC0tPgogICAgYGBgYApgYGB7ciwgZWNobyA9IEZBTFNFfWByICcnYApoaXN0KGZhaXRoZnVsJHdhaXRpbmcpCmBgYAogICAgYGBgYAoKICAgIHdpbGwgc2hvdyBvbmx5IHRoZSBwbG90IGFuZCBub3QgdGhlIGNvZGUuCgogICogTnVtYmVycyBpbiB5b3VyIHRleHQgaW5zZXJ0ZWQgd2l0aCBpbmxpbmUgY29kZSBhbmQgbnVtYmVycyBpbgogICAgdGFibGVzIHNob3VsZCBiZSByb3VuZGVkIHRvIGFuIGFwcHJvcHJpYXRlIG51bWJlciBvZiBkZWNpbWFscy4gVGhlCiAgICBgcm91bmQoKWAgZnVuY3Rpb24gY2FuIGJlIHVzZWQgaW4gaW5saW5lIGNvZGUuIFRoZSBga2FibGUoKWAKICAgIGZ1bmN0aW9ucyBoYXZlIG9wdGlvbnMgZm9yIGNvbnRyb2xsaW5nIHRoZSBudW1iZXIgb2YgZGlnaXRzLgoKICAqIFlvdXIgaG9tZXdvcmsgc29sdXRpb25zIHNob3VsZCB1c2UgdGhlIHNhbWUgaGVhZGVycyBhcyB0aGUKICAgIGFzc2lnbm1lbnQgdG8gbWFrZSBpdCBlYXNpZXIgdG8gZ3JhZGUuIFRoZSBhc3NpZ25tZW50IHByb2JsZW0KICAgIGhlYWRlcnMgYXJlIGFsbCBsZXZlbCB0d28gaGVhZGVycywgY3JlYXRlZCBieSBzdGFydGluZyBhIGxpbmUgd2l0aAogICAgYCMjYC4KCiAgKiBUaGUgdGV4dCBzaG91bGQgYmUgYWxsIHlvdXIgb3duLCBub3Qgc3RyYXkgbWF0ZXJpYWwgZnJvbSB0ZW1wbGF0ZXMuCgoKIyMgTmFtZSBhbmQgRGF0ZQoKTWFrZSBzdXJlIHlvdXIgUm1hcmtkb3duIGZpbGUgaGVhZGVyIGNvbnRhaW5zIGEgYG5hbWU6YCBmaWVsZCB3aXRoCnlvdXIgbmFtZTsgYSBgZGF0ZTpgIGZpZWxkIHdpdGggYW4gYXBwcm9wcmlhdGUgZGF0ZSBpcyBhbHNvIHVzZWZ1bC4KCllvdXIgaGVhZGVyIHNob3VsZCBsb29rIHNvbWV0aGluZyBsaWtlIHRoaXM6CmBgYAotLS0KdGl0bGU6ICJBc3NpZ25tZW50IDEiCm91dHB1dDogaHRtbF9kb2N1bWVudApuYW1lOiAiWW91ciAgTmFtZSIKZGF0ZTogIkphbnVhcnkgMjMsIDIwMjYiCi0tLQpgYGAKClRoZSBbdGVtcGxhdGVdKGh3dGVtcC5SbWQpIHNob3dzIGEgd2F5IHRvIGhhdmUgdGhlIGN1cnJlbnQgZGF0ZSBpbnNlcnRlZC4KClRoZSBmb2xsb3dpbmcgaXMgYSBzYW1wbGUgc29sdXRpb24uCgoKIyMgMS4gQXZlcmFnZSBXYWl0aW5nIFRpbWUgQmV0d2VlbiBFcnVwdGlvbnMKClRoZSBhdmVyYWdlIHdhaXRpbmcgdGltZSBiZXR3ZWVuIGVydXB0aW9ucyBvZiB0aGUgX09sZCBGYWl0aGZ1bF8gZ2V5c2VyCmluIHRoZSBkYXRhIHNldCBgZmFpdGhmdWxgIGlzIGByIHJvdW5kKG1lYW4oZmFpdGhmdWwkd2FpdGluZyksIDIpYCBtaW51dGVzLgoKCiMjIDIuIEZpcnN0IEZvdXIgRXJ1cHRpb24gRHVyYXRpb25zCgpUaGUgZmlyc3QgZm91ciBlcnVwdGlvbiBkdXJhdGlvbnMgY2FuIGJlIGNvbXB1dGVkIHVzaW5nIGJ5IHVzaW5nIHRoZQpgJGAgb3BlcmF0b3IgdG8gZXh0cmFjdCB0aGUgYGVydXB0aW9uc2AgdmFyaWFibGUsIGFuZCB0aGVuIHRoZSBzdWJzZXQKb3BlcmF0b3IgdG8gZ2V0IHRoZSBzdWJzZXQgb2YgdGhlIGZpcnN0IGZvdXIgb2JzZXJ2YXRpb25zOgoKYGBge3J9CmZhaXRoZnVsJGVydXB0aW9uc1sxIDogNF0KYGBgCgojIyAzLiBGaXJzdCBGaXZlIFJlY29yZHMgb2YgdGhlIEVydXB0aW9ucyBEYXRhCgpUaGUgZm9sbG93aW5nIHRhYmxlIHNob3dzIHRoZSBmaXJzdCBmaXZlIGVydXB0aW9uIGR1cmF0aW9ucyBhbmQKd2FpdGluZyB0aW1lcyB0byB0aGUgc3Vic2VxdWVudCBlcnVwdGlvbiBmb3IgdGhlIF9PbGQgRmFpdGhmdWxfIGdleXNlcgpyZWNvcmRlZCBpbiB0aGUgYGZhaXRoZnVsYCBkYXRhIGZyYW1lLiBUaW1lcyBhcmUgaW4gbWludXRlcy4KCmBgYHtyLCBlY2hvID0gRkFMU0V9CiMjIHRoZSBkaWdpdHMgYXJndW1lbnQgc3BlY2lmaWVzIHRoYXQgdGhlIGRhdGEgc2hvdWxkIGJlIHJvdW5kZWQKa2JsIDwtIGtuaXRyOjprYWJsZShoZWFkKGZhaXRoZnVsLCA1KSwgZGlnaXRzID0gMiwgZm9ybWF0ID0gImh0bWwiKQprYWJsZUV4dHJhOjprYWJsZV9zdHlsaW5nKGtibCwgZnVsbF93aWR0aCA9IEZBTFNFKQpgYGAKCiMjIDQuIEhpc3RvZ3JhbSBvZiBFcnVwdGlvbiBEdXJhdGlvbnMKClRoZSBmb2xsb3dpbmcgcGxvdCBzaG93cyBhIGhpc3RvZ3JhbSBvZiB0aGUgZXJ1cHRpb24gZHVyYXRpb25zIGZvcgp0aGUgYGZhaXRoZnVsYCBkYXRhIHNldC4KCmBgYHtyLCBlY2hvID0gRkFMU0V9Cmhpc3QoZmFpdGhmdWwkZXJ1cHRpb25zKQpgYGAKClRoZSBkaXN0cmlidXRpb24gYXBwZWFycyB0byBiZSBiaW1vZGFsLCB3aXRoIG9uZSBtb2RlIGFyb3VuZCAyIG1pbnV0ZXMKYW5kIG9uZSBhcm91bmQgNC41IG1pbnV0ZXMuCg==