• Stars
    star
    112
  • Rank 312,240 (Top 7 %)
  • Language
    R
  • Created almost 5 years ago
  • Updated almost 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Talk about general debugging strategies. How to be less confused and frustrated.

Object of type 'closure' is not subsettable

Talk developed for rstudio::conf 2020, January 27 - 30, 2020 in San Francisco
by Jenny Bryan
jennybryan.org
Twitter: @jennyBryan
GitHub: @jennybc

Your first "object of type 'closure' is not subsettable" error message is a big milestone for an R user. Congratulations, if there was any lingering doubt, you now know that you are officially programming! Programming involves considerably more troubleshooting and debugging than many of us expected (or signed up for). The ability to solve your own problems is an incredibly powerful stealth skill that is worth cultivating with intention. This talk will help you nurture your inner problem solver, covering both general debugging methods and specific ways to implement them in the R ecosystem.

Link to this repo

rstd.io/debugging is a shortlink to HERE

Slides

Slides on SpeakerDeck

Slides as PDF file here in this repo

Video

The original rstudio::conf talk was live-streamed and recorded. Video is available here:

https://resources.rstudio.com/rstudio-conf-2020/object-of-type-closure-is-not-subsettable-jenny-bryan

Credits and resources

Annotated and hyperlink-y list of resources mentioned in the slides, in roughly the same order.


Restart R, often, and don't save/reload .Rdata.

This recommendation is explored more thoroughly in Save source, not the workspace. This mindset works best as part of a more holistic "project-oriented workflow", which is described in adjacent sections of What They Forgot to Teach You About R.


One of the most useful things Iโ€™ve learned from hanging out with (much) better programmers: donโ€™t wring hands and speculate. Work a small example that reveals, confirms, or eliminates something.

I'm paraphrasing my own tweet: https://twitter.com/JennyBryan/status/952285541617123328


The reprex package: https://reprex.tidyverse.org

RStudio webinar about reprex: Help me help you: Creating reproducible examples with reprex


The REPREX section features several illustrations by Christine Kuper.

We gratefully acknowledge Michelle Rial and her charts for an inspiring visual style.


The example of how a wild-caught puzzle evolves into a good reprex was kindly donated by Brooke Watson Madubuonwu.

Story concluded in tidyverse/dplyr#4094.


GitHub search for Hadley's "slightly more minimal reprexes": [more minimal reprex NOT advice user:tidyverse user:r-lib user:hadley involves:hadley is:issue] more minimal reprex NOT advice user:tidyverse user:r-lib involves:hadley is:issue


Presentation of a rather intimidating R message was inspired by a Far Side comic from Gary Larson. You know ... the one about Ginger the dog and "blah blah".

The Far Side very recently got a real online home: https://www.thefarside.com. However, last time I checked, this particular comic isn't there (yet). Hopefully it will appear one day and I can link to it.


All the code snippets from the fruit_avg() debugging example are in R/.


Debugging with RStudio

rlang's functions for Errors, conditions, and backtraces


Video of a tiny room hidden behind an electrical outlet is from Mozu Studios:


The major difference between a thing that might go wrong and a thing that cannot possibly go wrong is that when a thing that cannot possibly go wrong goes wrong it usually turns out to be impossible to get at and repair.

Quote attributed to Douglas Adams, but I am not sure of the original source.


The tidyverse and r-lib packages have an aspirational and developing style guide for error messages:

https://style.tidyverse.org/error-messages.html


Static code snippets prepared with the reprex package, using venue = "rtf", which relies on highlight.

GIFs of code prepared with r-lib/asciicast plus asciinema/asciicast2gif.


This talk benefitted greatly from:


Image credits

Fret: https://unsplash.com/photos/OsC8HauR0e0
Do same thing again: https://unsplash.com/photos/uxUUENpp01I
Diver: https://unsplash.com/photos/wVvxjiLJr-g
Ocean horizon background: https://unsplash.com/photos/sYzFIusQp3Q
Calm sea background: https://unsplash.com/photos/IZ01rjX0XQA
Coral reef background: https://unsplash.com/photos/T1Wru10gKhg
Seaweed background: https://unsplash.com/photos/nAkC-KS444M
Orchid: https://unsplash.com/photos/Ug6z9PCwr58
Corn field: https://unsplash.com/photos/nCQXxsSg3oo
On/off key: https://unsplash.com/photos/cw_uvISXkCI
Sunlight under water background: https://unsplash.com/photos/K785Da4A_JA
Garnishing with sauce: https://unsplash.com/photos/YaiY50wzWzI
Death certificate (modified): Public Domain, https://commons.wikimedia.org/w/index.php?curid=214170
Sunlight under water background: https://unsplash.com/photos/K785Da4A_JA Washing pot: https://unsplash.com/photos/-VhH4S1Lur8
The Night King: https://cnet4.cbsistatic.com/img/vugy5MvUVBvwcJf0JvKIBd1RwJE=/1200x675/2019/04/22/2b2fee8d-111a-4d19-ae83-4e61899cfd47/1nightking.jpg (probably copyright HBO)
Autopsy painting by Rembrandt: https://www.mauritshuis.nl/en/explore/the-collection/artworks/the-anatomy-lesson-of-dr-nicolaes-tulp-146/detailgegevens/ Public Domain, https://commons.wikimedia.org/w/index.php?curid=64281722
Gray cube abstract wallpaper vector art https://unsplash.com/photos/1CVy8JStf3A

More Repositories

1

googlesheets

Google Spreadsheets R API
R
786
star
2

happy-git-with-r

Using Git and GitHub with R, Rstudio, and R Markdown
TeX
550
star
3

row-oriented-workflows

Row-oriented workflows in R with the tidyverse
R
406
star
4

here_here

I love the here package. Here's why.
289
star
5

gapminder

Excerpt from the Gapminder data, as an R data package and in plain text delimited form
R
273
star
6

ggplot2-tutorial

Teaching materials for the R package ggplot2
R
236
star
7

code-smells-and-feels

Talk on code smells and feels and how to change that via refactoring
R
230
star
8

send-email-with-r

How to send a bunch of email from R
R
205
star
9

r-graph-catalog

All graphs in โ€œCreating More Effective Graphsโ€, made with R package ggplot2.
R
187
star
10

repurrrsive

Recursive lists to use in teaching and examples, because there is no mtcars for lists.
R
133
star
11

access-r-source

How to get at R source. I am sick of Googling this. I am writing it down this time.
120
star
12

free-photos

Places to find CC0 photos and the like
116
star
13

purrr-tutorial

Materials for getting to the know the R package purrr
HTML
111
star
14

pkg-dev-tutorial

Package Development tutorial for useR! 2019 Toulouse
R
89
star
15

docker-why

Notes about why an R user would use Docker
57
star
16

scary-excel-stories

Sobering things about Excel
55
star
17

jadd

RStudio addins
R
52
star
18

bingo

Generate Bingo cards with R.
R
48
star
19

sanesheets

A rant about spreadsheets.
47
star
20

githug

Interface to local and remote Git operations
R
47
star
21

how-to-name-files

R
43
star
22

manipulate-xml-with-purrr-dplyr-tidyr

Example of taming XML with nested data frames and purrr
HTML
40
star
23

lego-rstats

Photos that depict R data structures and operations via Lego
R
39
star
24

analyze-github-stuff-with-r

Marshal data from the GitHub API with R
R
38
star
25

2015-06-28_r-summit-talk

Talk at R Summit and Workshop about using R Markdown and GitHub in your workflow
38
star
26

operation-chromebook

Setup notes for the Bryan family Chromebooks
35
star
27

zen-art-workflow

Links and credits for a talk: Zen And The aRt Of Workflow Maintenance
R
35
star
28

2015-02-23_bryan-fields-talk

Talk at Workshop on Visualization for Big Data: Strategies and Principles, Fields Institute http://www.fields.utoronto.ca/programs/scientific/14-15/bigdata/visualization/
33
star
29

2016-06_spreadsheets

Talks given in May and June 2016.
32
star
30

2019-07_useR-toulouse-usethis

Talk about the usethis R package at useR! 2019 Toulouse
R
30
star
31

foofactors

Make Factors Less Aggravating
R
29
star
32

excelgesis

Critical explanation or interpretation of ... Excel spreadsheets
R
26
star
33

lotr

R
26
star
34

2024_raukr-purrr-pkg-dev

Jenny Bryan's instruction at RaukR: Advanced R for Bioinformatics Summer School
R
23
star
35

lotr-tidy

Tidy data lesson using Lord of the Rings data.
23
star
36

regexcite

PACKAGE EXISTS FOR DEMONSTRATION PURPOSES ONLY! Make Regular Expressions More Exciting
R
21
star
37

STAT545A_2013

UBC grad course in data analysis with R
HTML
21
star
38

earl-london-2017-bryan

Jenny Bryan talk at EARL London, 2017 September 12/13/14
21
star
39

2018-09_purrr-latinr

R
20
star
40

scream

Get replies and quotes of a tweet
19
star
41

jeremy-howard-posit-conf-2023

Notebook seen in Jeremy Howard's keynote at posit::conf(2023)
Jupyter Notebook
19
star
42

tidy-eval-context

17
star
43

2015-08_bryan-jsm-stat-data-sci-talk

Bryan talk at JSM 2015 re: are statisticians data scientists
R
17
star
44

stat540_2014

STAT540 Statistical Methods for High Dimensional Biology, January - April 2014
R
16
star
45

happy-git-and-github-for-the-user

Talk: Happy Git and GitHub for the useR
14
star
46

frogs

Data from the Calaveras Jumping Frog Jubilee
R
11
star
47

organization-and-naming

Draft of mini-lectures about file organization and naming.
9
star
48

2018_advent-of-code

R
8
star
49

candy

candy survey data
R
8
star
50

2024-04_netherlands-escience

8
star
51

2014-05-12-ubc

Python
8
star
52

making-messages

7
star
53

yelpr

Call the Yelp API from R ... at this point, just helping a student!
R
6
star
54

bioinformatics.ca-swc-r

Software Carpentry Bootcamp for bioinformatics.ca 2014-05-12
R
6
star
55

appveyorWTF

WTF AppVeyor, WTF?
R
5
star
56

2017_advent-of-code

R
5
star
57

STAT545

UBC grad course in data analysis with R
5
star
58

user2016-git-tutorial

Tutorial for useR! 2016 @ Stanford
4
star
59

jennybryan.org

Personal website of Jenny Bryan
HTML
4
star
60

swcR_duke

R content from Duke Software Carpentry Workshop May 2013.
R
4
star
61

jblibminer

Explore Your R Libraries
R
4
star
62

test-drive-a-package

try an experimental version of an R package without messing with your main R library
3
star
63

babystats

Bit of data on the Bryan babies
R
3
star
64

explore-libraries-seattle-practice

Just practicing!
R
3
star
65

miami-intermediate-r

Instructor repository for intermediate R room, U of Miami, Software Carpentry Boot Camp, January 2014
R
3
star
66

angrybunny

Split a single string
R
2
star
67

symlink-test

R
2
star
68

2021-06_raukr-iteration

R
2
star
69

furry-sniffle

A practice GitHub repo
2
star
70

teengecko

What the Package Does (One Line, Title Case)
R
2
star
71

xyztest

2
star
72

nfl

R
2
star
73

apple

Experimenting using GHA to render bookdown into gh-pages branch
TeX
2
star
74

localetest

What the Package Does (One Line, Title Case)
R
2
star
75

arms-length-render

Usage of rmarkdown::render() when intermediates and outputs don't live with source
R
2
star
76

vanNH

In-house statistics for the Vancouver Nighthawks of Major League Ultimate
HTML
2
star
77

testfun

Toy package with some tests
R
2
star
78

rmd-render-fun

R
2
star
79

cran-data-pkg-licenses

A look at the licenses used by data packages on CRAN
1
star
80

2013-11_sfu

Supporting documents for talk and workshop for SFU Statistics and Actuarial Science
1
star
81

README-as-visual-index

Autogenerate README to give visual index of a figure directory
R
1
star
82

refactor

Make Factors Less Annoying
R
1
star
83

vigilant-tribble

There's only one way to figure out how this works.
1
star
84

happy

I am happy
1
star
85

foofactors2

Happier Life With Factors
R
1
star
86

bellybutton

Data from "A Jungle in There" re: bacterial diversity in the adult human belly button
1
star
87

foofactors3

What the Package Does (One Line, Title Case)
R
1
star
88

2014-01-27-miami

Software Carpentry Bootcamp at the University of Miami
Python
1
star
89

stat545a-2013-hw06_baik-jon

Last homework for STAT545A
CSS
1
star
90

devhelp

What the Package Does (One Line, Title Case)
R
1
star
91

STAT545Assignment6

R
1
star
92

excuse-me-iris

Toy example used in the article "Excuse me, do you have a moment to talk about version control?"
R
1
star
93

googledrive-deployed-token-demo-service

R
1
star
94

fuzzy-peach

R
1
star
95

fluffybunny

What the Package Does (One Line, Title Case)
1
star
96

clouddeployoops

1
star
97

pudgy-pig

just testing some instructions
1
star
98

safecall

C
1
star
99

reimagined-goggles

Demo project created from raukR, OK to delete later
1
star
100

abcd

What the Package Does (One Line, Title Case)
R
1
star