ETC5523: R-Package Assessment Instructions
Due date: Fri 6 Oct 11:55 PM
This assessment, worth 20% of your final marks, requires you to make an R-package and present its usage. This assessment is designed primary for you to demonstrate your technical competence with some bonus marks for excellent oral presentations.
- Accept the assessment at GitHub Classroom from the invitation link here. This repository has the basic structure R package for you to get started. All your work should be pushed to your R package assessment repository.
- Complete the tasks listed under Tasks.
- When you are finished, submit to Moodle all files in your repo, which should contain:
- the
README.md
file and - all files related to build and install your R package
- the
Tasks
- Add the
README.md
file with relevant information for your own R-package, including package goals, installation instructions and examples. - Construct an R package that include:
- the data (or its subsample if too big) from past assessment,
- your Shiny app (from Assessment 1 or otherwise),
- a function to launch the Shiny app, and
- other functions with at least one that return numerical values with unit tests.
- Add a vignette explaining or informing some aspect of your package.
- Build a package website that contains the package documentation.
See the marking criteria for expected demonstration of your skills
Please don’t make your repo public until assessment marks are released.
Tips
- Get started early and seek help early by going to consultation hours.
- Commit regularly to your GitHub repo.
- Check the marking criteria below to get an idea of what is expected.
- When assessment marks are released, you should consider making your repo public and add the link to it in your CV.
Ideas for functions:
- A function with a single argument that returns a data frame.
- If the input is a numerical vector of at least 5 values then it returns a data frame with two columns where the second column corresponds to the five number summary values and the first column is the names of the values (i.e. minimum, Q1, median, Q3, maximum).
- If the input is a character or factor vector then it returns a data frame with the first column as values and the second column as frequencies.
- What should it return if it is a numerical vector of less than 5 values?
- A function with two arguments where
- if the two inputs are numerical vectors of the same size, it return the correlation coefficient,
- if one is numerical and the other is character or factor vector, it returns the mean for each level,
- if both inputs are character/factor vectors, then it returns are cross tabulation as a data frame,
- What should it return if the vectors are not the same size?
Academic integrity
In submitting for this assessment that you understand that entire submission is your own work.
Note
- The total submission file size must be less than 500mb. If you have issues submitting this, you should email it to the lecturer before the due date.
Marking crtieria
You will need to complete following tasks while developing the package:
- The DESCRIPTION file includes an informative name and title for your package, as well as a valid author field and dependencies. There should also be a valid LICENCE file. (5 marks)
- There is a
README.md
file that has clear instructions on how to install the package from GitHub, and gives an overview of the package goals and examples. (3 marks) - There is an exported data used in the shiny app with appropriate documentation with the processing of the data stored in a script under
data-raw
directory. (3 marks) - There is a function that successfully launches your shiny app from your package. (2 marks)
- There is at least one meaningful function that returns a numerical answer (see Tips for some ideas). (3 marks)
- There is at least one function to compute a parameterised version of your table/plot in your Shiny app where the function argument(s) corresponds to your inputs (e.g. radio button, selection, text input, numeric input). (3 marks)
- Write unit tests with
testthat
for at least one function that returns a numerical value. (3 marks) - All functions in the package are documented with
roxygen2
. (3 marks) - Create an Rmd vignette for your R-package. This may be a modified version of your blog post or otherwise. (2 marks)
- Create a package documentation website using
pkgdown
and host this on the internet. The URL of this website should be in your README and/or DESCRIPTION file. (3 marks) - Documentation and vignettes have correct spelling, grammar and punctuation. (1 mark)
- Consistent styling is employed in your code. (1 mark)
- The package passes
devtools::check()
without errors or warnings. (3 marks)
Total marks: 35.