-
Notifications
You must be signed in to change notification settings - Fork 5
Meetings
Sébastien Rochette edited this page Feb 1, 2021
·
1 revision
- Small groups + Breakout rooms: 30 attendees for 3 instructors
- For the title, we can certainly use "Rmd First" like your blog post instead of mine if you would prefer! In the past, I've emphasized that "your end result doesn't have to be a package", so "Rmd First" is perhaps even more clear that our goal is definitely a package here! Please use whichever you prefer
- How to build a package following "Rmd First" method
- For the learning goals, what are you thinking for "know how to share their work with the community"? Do you think we should cover GitHub? CRAN?
tarfiles?- Thinking about "git + GitHub + pkgdown": know it exists
- usethis::use_git() + commit + usethis::use_github_actions("pkgdown") + push
- Do you have any tentative vision for how we will break topics across 3 hours? I suspect we could perhaps do it in two hours but, then again, I never leave enough time for anything (😆). As I think about how to break out the content, I suppose we could do:
- Breaking Rmd into functions / Migrating modular components to package structure / Re-doing process with
fusen - Overview of process (not sure what exercises would be then - perhaps working in groups to understand a sample Rmd and deciding what parts are specific to one analysis vs what parts are generally applicable?) / Implementation / Re-doing process with
fusen - Something else
- Breaking Rmd into functions / Migrating modular components to package structure / Re-doing process with
- Should we have function writing be an explicit prerequisite? I don't know if there is a risk that if we try to cover everything from writing one's first functions to writing one's first packages all at once, we might move too fast and confuse learners
- It is more open if we do not force to be able to "write" functions before coming
- Do we need to require microphones? Hopefully most everyone has them, but people could also ask questions via Slack, etc. so I would hate for this to completely be a barrier for someone
- This is to make understand attendees that are supposed to participate but this will be a safe environment
- Wow! ThinkR's tutorial platform looks fantastic
- Test it : https://cruz.thinkr.fr (Better with Chrome)
- User: thomas_anderson-sc_demo
- password: YVBeFyBSowdnDpz4
- Test it : https://cruz.thinkr.fr (Better with Chrome)
- How to breakout ?
- Random, but the same random for each sub-groups in each exercises parts
- Time
- 7:00-10:00 (Emily) => 14:00-17:00 (Seb)
- 8:00-11
- 9:12
Find a dataset on which to do some filters, graphs A package for data analysis for internal use Focus on package build, and not on functions creation
- Writing functions
- Subjective (perhaps from tidyverse?) function design principles
- Find correct function names
- Name functions with lowercase
- Writing
roxygen2documentation - Writing tests for functions with
testthat- You already checked, why don't turn into a test ?
- Managing function dependencies (in roxygen and DESCRIPTION)
- attachment::att_amend_desc()
- Advanced function concepts (default arguments, ellipsis)
- Problems / nuances when turning tidyverse code into function (
.datapronoun) - R Markdown parameters (as intermediary step before package)
- Parametrized Rmd
-
source()ing separate function files into a project (as intermediary step before package) - R projects (as intermediary stage to package)
- R-specific data formats (
Rdata,Rds)- system.file() only ?
- Preserve raw-data
- devtools::load_all()
- [?] File structure of an R package
-
usethispackage (does this make sense if we teachfusen?) - Making documentation websites with
pkgdown- Present but not explain
- A goal of the tutorial
- "Advanced" package components like templates, add-ins
-
fusenpackage - Sharing a package on CRAN
- Sharing a package as a
tarfile- remotes::install_local("")
- Sharing a package on GitHub / GitLab
- Hosting a package website on GitHub
- Automating testing with GitHub Actions
- Explain what is CI if time allows ?