{"id":17790514,"url":"https://github.com/cwickham/quotation","last_synced_at":"2025-08-02T11:09:40.515Z","repository":{"id":66634274,"uuid":"132529483","full_name":"cwickham/quotation","owner":"cwickham","description":"Materials from a talk at the Eugene R Users meetup","archived":false,"fork":false,"pushed_at":"2018-05-08T19:33:01.000Z","size":115,"stargazers_count":38,"open_issues_count":0,"forks_count":4,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-24T13:52:07.947Z","etag":null,"topics":["rstats","tutorial"],"latest_commit_sha":null,"homepage":"","language":null,"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/cwickham.png","metadata":{"files":{"readme":"README.md","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":"2018-05-08T00:00:18.000Z","updated_at":"2022-11-23T18:40:16.000Z","dependencies_parsed_at":"2023-03-10T22:15:10.447Z","dependency_job_id":null,"html_url":"https://github.com/cwickham/quotation","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cwickham/quotation","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cwickham%2Fquotation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cwickham%2Fquotation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cwickham%2Fquotation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cwickham%2Fquotation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cwickham","download_url":"https://codeload.github.com/cwickham/quotation/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cwickham%2Fquotation/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268378808,"owners_count":24240896,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-02T02:00:12.353Z","response_time":74,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["rstats","tutorial"],"created_at":"2024-10-27T10:44:06.397Z","updated_at":"2025-08-02T11:09:40.483Z","avatar_url":"https://github.com/cwickham.png","language":null,"readme":"# Quotes, Quotation and Quasiquotation\n\nA talk given at the [Eugene R Users](https://www.meetup.com/meetup-group-cwPiAlnB/) Meetup, May 8 2018.\n\n## Original Outline\n\nI'll start with a common question for new R users: When do I put quotes (`\"`) around something in R? I'll give you a few strategies for identifying whether you need *quotes*, backticks, or nothing at all.  \n\nThen we'll transition to talking about *quotation*, which by the way, doesn't mean surrounding something in quotes.  What does it mean?  You'll learn what quotation is, and why developers use it to make your life easier.\n\nFinally, I'll introduce the idea of unquoting and help you understand what it means when a function says it supports *quasiquotation*. This will allow you to to use functions like `dplyr::filter()` inside your own functions.\n\n## Package Requirements\n\nI'll aim to have the talk be interactive without you having a laptop with you, but if you would like to follow along in R, make sure you have the tidyverse packages, rlang and lobstr installed:\n\n```\ninstall.packages(c(\"tidyverse\", \"rlang\"))\n# install.packages(\"devtools\")\ndevtools::install_github(\"r-lib/lobstr\")\n```\n\n## What actually happened\n\nWe worked through three examples:\n\n1. Using a dplyr function interactively\n2. Using a dplyr function with a saved variable\n3. Using a dplyr function inside a function\n\nSee the [annotated output](three-examples-annotated.md) or [source](three-examples-annotated.Rmd), or motivating [slides](three-examples-slides.pdf).\n\nThis meant I omitted the \"Quotes\" part of the talk, but you can look at my [notes](quotes.md).\n\n## Resources\n\nIf dplyr is new to you, start by learning to use it interactively with the [Data Transformation chapter in R for Data Science](http://r4ds.had.co.nz/transform.html).\n\nIf you have never written your own function before, start with [Functions in R for Data Science](http://r4ds.had.co.nz/functions.html) or [DataCamp's Writing Functions in R](https://www.datacamp.com/courses/writing-functions-in-r).\n\nIf you've written functions but want to formalise your knowledge, [Functions in Advanced R](http://adv-r.had.co.nz/Functions.html).\n\nIf you want to see how to program with dplyr functions, the [Programming with dplyr vignette](https://dplyr.tidyverse.org/articles/programming.html).\n\nIf the vignette seems a little unapproachable, find another resource in [Mara Averick's roundup of tidy eval resources](https://maraaverick.rbind.io/2017/08/tidyeval-resource-roundup/).\n\nIf you'd prefer to watch than read, the [RStudio's tidy evaluation webinar](https://www.rstudio.com/resources/webinars/tidy-eval/), or [Hadley's tidy evaluation in 5 minutes](https://www.youtube.com/watch?v=nERXS3ssntw).\n\nIf you are interested in the underpinnings, and possibly using tidy evaluation ideas in your own packages, look at [Metaprogramming in the **new** (in progress) edition of Advanced R](https://adv-r.hadley.nz/meta.html).\n\n## License\n\n\u003ca rel=\"license\" href=\"http://creativecommons.org/licenses/by-sa/4.0/\"\u003e\u003cimg alt=\"Creative Commons License\" style=\"border-width:0\" src=\"https://i.creativecommons.org/l/by-sa/4.0/88x31.png\" /\u003e\u003c/a\u003e\u003cbr /\u003e\u003cspan xmlns:dct=\"http://purl.org/dc/terms/\" property=\"dct:title\"\u003eQuotes, Quotation and Quasiquotation\u003c/span\u003e by \u003cspan xmlns:cc=\"http://creativecommons.org/ns#\" property=\"cc:attributionName\"\u003eCharlotte Wickham\u003c/span\u003e is licensed under a \u003ca rel=\"license\" href=\"http://creativecommons.org/licenses/by-sa/4.0/\"\u003eCreative Commons Attribution-ShareAlike 4.0 International License\u003c/a\u003e.","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcwickham%2Fquotation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcwickham%2Fquotation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcwickham%2Fquotation/lists"}