{"id":16276228,"url":"https://github.com/robinlovelace/rmarkingdown","last_synced_at":"2026-02-18T11:03:24.839Z","repository":{"id":153981651,"uuid":"249637384","full_name":"Robinlovelace/rmarkingdown","owner":"Robinlovelace","description":"Mark and test the reproducibility of R/RMarkdown submissions with this template","archived":false,"fork":false,"pushed_at":"2020-06-06T10:50:09.000Z","size":9,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-02-08T11:58:15.556Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TeX","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Robinlovelace.png","metadata":{"files":{"readme":"README.Rmd","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-03-24T07:09:54.000Z","updated_at":"2020-06-06T10:50:12.000Z","dependencies_parsed_at":null,"dependency_job_id":"4673c40d-64d6-4d80-9694-7951389271ad","html_url":"https://github.com/Robinlovelace/rmarkingdown","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Robinlovelace/rmarkingdown","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Robinlovelace%2Frmarkingdown","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Robinlovelace%2Frmarkingdown/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Robinlovelace%2Frmarkingdown/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Robinlovelace%2Frmarkingdown/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Robinlovelace","download_url":"https://codeload.github.com/Robinlovelace/rmarkingdown/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Robinlovelace%2Frmarkingdown/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29576868,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-18T08:38:15.585Z","status":"ssl_error","status_checked_at":"2026-02-18T08:38:14.917Z","response_time":162,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-10T18:47:27.141Z","updated_at":"2026-02-18T11:03:24.823Z","avatar_url":"https://github.com/Robinlovelace.png","language":"TeX","funding_links":[],"categories":[],"sub_categories":[],"readme":"---\ntile: Marking with RMarkdown template\nauthor: Robin Lovelace\noutput: github_document\nbibliography: references.bib\n# output:\n#   html_document:\n#     toc: true\n#     number_sections: true\n---\n\n# rmarkingdown\n\n```{r, include=FALSE}\nknitr::opts_chunk$set()\n```\n\n# Quickstart {-}\n\nTo get started with this template:\n\n- Create a new RStudio project in a suitable place and with a suitable name, e.g. `~/modules/tds/marks-2020` and open it up.\n- Download and unzip the contents of this template with the following commands in the new project:\n\n```{r, eval=FALSE}\nu = \"https://github.com/Robinlovelace/rmarkingdown/archive/master.zip\"\ndownload.file(u, \"master.zip\")\nunzip(\"master.zip\")\nfiles_to_move = list.files(path = \"rmarkingdown-master/\", pattern = \"*\", full.names = TRUE)\ndestinations = basename(files_to_move)\nfile.copy(\n  from = files_to_move,\n  to = \".\",\n  overwrite = FALSE, # avoid deleting files\n  recursive = TRUE\n  )\n```\n\n\n# Introduction {-}\n\nThis document contains code and text for evaluating and providing feedback to students who submitted reports for the module [xxx](web-link).\nIt aims to use the power of RMarkdown [@R-rmarkdown] to automate some parts of the process, and to provide individual (for students), and whole assessment level reports (for staff) in RMarkdown and html (or other) formats.\nThe feedback is designed to be constructive.\n\n## Feedback criteria\n\nFeedback is assessed using the following criteria, partly influenced by a document from the [Oxford Learning Institute](https://www.learning.ox.ac.uk/media/global/wwwadminoxacuk/localsites/oxfordlearninginstitute/documents/overview/rsv/Guidelines_for_giving_and_receiving_feedback.pdf), under the following headings:\n\n- Demonstration of learning outcomes\n- Reproducibility\n- Positives\n- Areas for improvement\n- Ideas for further research\n\n\u003c!-- ## Learning outcomes --\u003e\n\n\u003c!-- Note: these are example learning outcomes --\u003e\n\n\u003c!-- Reference will be made to the following learning outcomes. --\u003e\n\n\u003c!-- Knowledge: --\u003e\n\n\u003c!--     understand the principles underlying base and grid graphics --\u003e\n\u003c!--     understand how toolkits build on grid graphics are structured --\u003e\n\u003c!--     understand the choices involved in the effective use of colours and glyphs --\u003e\n\u003c!--     understand the motivations underlying the choices made in visualization in R programming --\u003e\n\u003c!--     use this understanding in customising graphical outputs --\u003e\n\n\u003c!-- Skills: --\u003e\n\n\u003c!--     assign correct descriptions to visualization techniques used in scripts and functions encountered in simple workflows --\u003e\n\u003c!--     define new visualization templates for workflow output --\u003e\n\n\u003c!-- General competence: --\u003e\n\n\u003c!--     handle the graphical output of R functions with greater confidence --\u003e\n\u003c!--     customise the graphical output of R functions to meet specific needs --\u003e\n\n## Set-up\n\nTemplate feedback files were created as follows:\n\n```{r feedback, eval=FALSE}\n# Adapt this for your own feedback:\n\nfeedback_template = \"\n# Candidate\n\n## Positives\n\n## Ideas for further research\n\n## ...\n\"\n```\n\nYou can also read-in a feedback template (recommended for modularity):\n\n```{r ftemplate, eval=FALSE}\nfeedback_template = readLines(\"feedback-template.Rmd\") # from known source\n\nn_submissions = 3\n\nsubmission_numbers = formatC(x = 1:n_submissions, width = 2, flag = 0)\nlapply(submission_numbers, dir.create)\nsubmission_names = paste0(\"submission\", submission_numbers, \".Rmd\")\n\n# test writing template file\nwrite_template = function(x) {\n  writeLines(text = feedback_template, con = x)\n}\nwrite_template(submission_names[1])\nrmarkdown::render(\"submission01.Rmd\")\n```\n\nYou can explore the template results before writing detailed feedback as follows:\n\n```{r, eval=FALSE}\n\nbrowseURL(\"submission01.html\") # looks good\n```\n\nAnd create the template for all submissions like this:\n\n```{r, eval=FALSE}\n# create all template files\npurrr::map(submission_names, ~write_template(.))\n```\n\n# Feedback\n\nAfter running the above code chunks mark each submission by editing each .Rmd file, e.g. with:\n\n```{r, eval=FALSE}\nfile.edit(\"submission01.Rmd\") # mark submission1\nfile.edit(\"submission02.Rmd\") # mark submission2\nfile.edit(\"submission03.Rmd\") # mark submission3\n```\n\nThis can then be included with the following chunk setting: \n\n```\n{r test-main1, child = 'submission01.Rmd'}\n```\n\n\n```{r test-main1, child = 'submission01.Rmd'}\n```\n\n# submission 2: no submission\n\n```{r test-main2, child = 'submission02.Rmd', eval=FALSE}\n```\n\n```{r test-main3, child = 'submission03.Rmd'}\n```\n\n# Auto-generating submission chunks\n\nAnother step that can be automated is generating the Rmarkdown chunks for each submission.\nThis can be done as follows:\n\n```\nmake_chunk_submission = function(n) {\n\npaste0(\"\n\n\n```{r test-main, child = 'submission\", n, \".Rmd', eval = FALSE}\n```\n\")\n}\nmake_chunk_submission(\"01\")\n\nmake_chunk_submissions = function(submission_numbers) {\n  purrr::map_chr(submission_numbers, make_chunk_submission)\n}\n\nchunk_submissions_text = make_chunk_submissions(submission_numbers)\nwriteLines(chunk_submissions_text, \"chunk_submissions_text.Rmd\")\nfile.edit(\"chunk_submissions_text.Rmd\")\n```\n\n## References\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobinlovelace%2Frmarkingdown","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frobinlovelace%2Frmarkingdown","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobinlovelace%2Frmarkingdown/lists"}