1. Import your data

Import two related datasets from TidyTuesday Project.

frogID_data <- readr::read_csv('https://raw.githubusercontent.com/rfordatascience/tidytuesday/main/data/2025/2025-09-02/frogID_data.csv')
## Rows: 136621 Columns: 11
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr  (3): scientificName, timezone, stateProvince
## dbl  (6): occurrenceID, eventID, decimalLatitude, decimalLongitude, coordina...
## date (1): eventDate
## time (1): eventTime
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
frog_names <- readr::read_csv('https://raw.githubusercontent.com/rfordatascience/tidytuesday/main/data/2025/2025-09-02/frog_names.csv')
## Rows: 294 Columns: 5
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (5): subfamily, tribe, scientificName, commonName, secondary_commonNames
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.

2. Make data small

Describe the two datasets:

Data1

Data 2

set.seed(1234)
frogID_small <- frogID_data %>% select(scientificName, stateProvince, eventDate) %>% sample_n(10)
frog_names_small <- frog_names %>% select(scientificName, subfamily, commonName) %>% sample_n(10)

frogID_small
## # A tibble: 10 × 3
##    scientificName        stateProvince   eventDate 
##    <chr>                 <chr>           <date>    
##  1 Geocrinia laevis      Victoria        2023-04-18
##  2 Limnodynastes peronii New South Wales 2023-10-19
##  3 Litoria fallax        New South Wales 2023-09-08
##  4 Litoria ewingii       Victoria        2023-10-09
##  5 Crinia signifera      Victoria        2023-09-12
##  6 Litoria caerulea      Queensland      2023-01-17
##  7 Litoria caerulea      Queensland      2023-01-05
##  8 Litoria pyrina        Queensland      2023-01-31
##  9 Litoria peronii       New South Wales 2023-01-03
## 10 Crinia signifera      New South Wales 2023-11-05
frog_names_small
## # A tibble: 10 × 3
##    scientificName             subfamily    commonName                   
##    <chr>                      <chr>        <chr>                        
##  1 Litoria nannotis           Hylid        Waterfall Frog               
##  2 Philoria knowlesi          Myobatrachid Mount Ballow Mountain Frog   
##  3 Austrochaperina gracilipes Microhylidae Northern Whistling Frog      
##  4 Adelotus                   Myobatrachid Tusked Frog                  
##  5 Litoria dayi               Hylid        Australian Lace-lid          
##  6 Cophixalus concinnus       Microhylidae Beautiful Nursery Frog       
##  7 Mixophyes iteratus         Myobatrachid Giant Barred Frog            
##  8 Taudactylus liemi          Myobatrachid Eungella Tinker Frog         
##  9 Cophixalus exiguus         Microhylidae Northern Tapping Nursery Frog
## 10 Litoria pyrina             Hylid        Ruddy Tree Frog

3. inner_join

Describe the resulting data:

How is it different from the original two datasets?

frogID_small %>% inner_join(frog_names_small)
## Joining with `by = join_by(scientificName)`
## # A tibble: 1 × 5
##   scientificName stateProvince eventDate  subfamily commonName     
##   <chr>          <chr>         <date>     <chr>     <chr>          
## 1 Litoria pyrina Queensland    2023-01-31 Hylid     Ruddy Tree Frog

4. left_join

Describe the resulting data:

How is it different from the original two datasets?

frogID_small %>% left_join(frog_names_small)
## Joining with `by = join_by(scientificName)`
## # A tibble: 10 × 5
##    scientificName        stateProvince   eventDate  subfamily commonName     
##    <chr>                 <chr>           <date>     <chr>     <chr>          
##  1 Geocrinia laevis      Victoria        2023-04-18 <NA>      <NA>           
##  2 Limnodynastes peronii New South Wales 2023-10-19 <NA>      <NA>           
##  3 Litoria fallax        New South Wales 2023-09-08 <NA>      <NA>           
##  4 Litoria ewingii       Victoria        2023-10-09 <NA>      <NA>           
##  5 Crinia signifera      Victoria        2023-09-12 <NA>      <NA>           
##  6 Litoria caerulea      Queensland      2023-01-17 <NA>      <NA>           
##  7 Litoria caerulea      Queensland      2023-01-05 <NA>      <NA>           
##  8 Litoria pyrina        Queensland      2023-01-31 Hylid     Ruddy Tree Frog
##  9 Litoria peronii       New South Wales 2023-01-03 <NA>      <NA>           
## 10 Crinia signifera      New South Wales 2023-11-05 <NA>      <NA>

5. right_join

Describe the resulting data:

How is it different from the original two datasets?

frogID_small %>% right_join(frog_names_small)
## Joining with `by = join_by(scientificName)`
## # A tibble: 10 × 5
##    scientificName             stateProvince eventDate  subfamily    commonName  
##    <chr>                      <chr>         <date>     <chr>        <chr>       
##  1 Litoria pyrina             Queensland    2023-01-31 Hylid        Ruddy Tree …
##  2 Litoria nannotis           <NA>          NA         Hylid        Waterfall F…
##  3 Philoria knowlesi          <NA>          NA         Myobatrachid Mount Ballo…
##  4 Austrochaperina gracilipes <NA>          NA         Microhylidae Northern Wh…
##  5 Adelotus                   <NA>          NA         Myobatrachid Tusked Frog 
##  6 Litoria dayi               <NA>          NA         Hylid        Australian …
##  7 Cophixalus concinnus       <NA>          NA         Microhylidae Beautiful N…
##  8 Mixophyes iteratus         <NA>          NA         Myobatrachid Giant Barre…
##  9 Taudactylus liemi          <NA>          NA         Myobatrachid Eungella Ti…
## 10 Cophixalus exiguus         <NA>          NA         Microhylidae Northern Ta…

6. full_join

Describe the resulting data:

How is it different from the original two datasets?

frogID_small %>% full_join(frog_names_small)
## Joining with `by = join_by(scientificName)`
## # A tibble: 19 × 5
##    scientificName             stateProvince   eventDate  subfamily    commonName
##    <chr>                      <chr>           <date>     <chr>        <chr>     
##  1 Geocrinia laevis           Victoria        2023-04-18 <NA>         <NA>      
##  2 Limnodynastes peronii      New South Wales 2023-10-19 <NA>         <NA>      
##  3 Litoria fallax             New South Wales 2023-09-08 <NA>         <NA>      
##  4 Litoria ewingii            Victoria        2023-10-09 <NA>         <NA>      
##  5 Crinia signifera           Victoria        2023-09-12 <NA>         <NA>      
##  6 Litoria caerulea           Queensland      2023-01-17 <NA>         <NA>      
##  7 Litoria caerulea           Queensland      2023-01-05 <NA>         <NA>      
##  8 Litoria pyrina             Queensland      2023-01-31 Hylid        Ruddy Tre…
##  9 Litoria peronii            New South Wales 2023-01-03 <NA>         <NA>      
## 10 Crinia signifera           New South Wales 2023-11-05 <NA>         <NA>      
## 11 Litoria nannotis           <NA>            NA         Hylid        Waterfall…
## 12 Philoria knowlesi          <NA>            NA         Myobatrachid Mount Bal…
## 13 Austrochaperina gracilipes <NA>            NA         Microhylidae Northern …
## 14 Adelotus                   <NA>            NA         Myobatrachid Tusked Fr…
## 15 Litoria dayi               <NA>            NA         Hylid        Australia…
## 16 Cophixalus concinnus       <NA>            NA         Microhylidae Beautiful…
## 17 Mixophyes iteratus         <NA>            NA         Myobatrachid Giant Bar…
## 18 Taudactylus liemi          <NA>            NA         Myobatrachid Eungella …
## 19 Cophixalus exiguus         <NA>            NA         Microhylidae Northern …

7. semi_join

Describe the resulting data:

How is it different from the original two datasets?

frogID_small %>% semi_join(frog_names_small)
## Joining with `by = join_by(scientificName)`
## # A tibble: 1 × 3
##   scientificName stateProvince eventDate 
##   <chr>          <chr>         <date>    
## 1 Litoria pyrina Queensland    2023-01-31

8. anti_join

Describe the resulting data:

How is it different from the original two datasets?

frogID_small %>% anti_join(frog_names_small)
## Joining with `by = join_by(scientificName)`
## # A tibble: 9 × 3
##   scientificName        stateProvince   eventDate 
##   <chr>                 <chr>           <date>    
## 1 Geocrinia laevis      Victoria        2023-04-18
## 2 Limnodynastes peronii New South Wales 2023-10-19
## 3 Litoria fallax        New South Wales 2023-09-08
## 4 Litoria ewingii       Victoria        2023-10-09
## 5 Crinia signifera      Victoria        2023-09-12
## 6 Litoria caerulea      Queensland      2023-01-17
## 7 Litoria caerulea      Queensland      2023-01-05
## 8 Litoria peronii       New South Wales 2023-01-03
## 9 Crinia signifera      New South Wales 2023-11-05