Week 1 Assignment

Author

Supriya P.

Approach

For this assignment, I am selecting a dataset called AI Career Threat Index:

The MeritForge Team (2026). AI Career Threat Index v2026.3. https://github.com/Jott2121/ai-career-threat-index (DOI: 10.5281/zenodo.21227026).

The subject feels topical and the dataset is small enough that I can hopefully work with it while I’m still familiarizing myself with R and RStudio (currently in Chapter 2 of Hands-On Programming with R). At this time, it’s all Greek to me - this is far from an understatement. I have no previous programming knowledge but am committed to learning and I pray the universe will support me in this endeavor.

Plan

  1. Figure out how to save this file, also figure whether I’ve met the “Approach” requirements.
  2. Understand what it means to save to rpubs.
  3. Figure out how to import selected dataset into RStudio.
  4. Decipher the meaning of the rest of the assignment as it’s still unclear.
  5. Pray that I can make it through this course and perhaps email my advisor asking why I was allowed/advised to take two courses with no previous programming knowledge.

Overview

#For reproducibility, I’ve mirrored a copy of the CSV in my own repository, which is what the code below loads from.

library("tidyverse")
── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ dplyr     1.2.1     ✔ readr     2.2.0
✔ forcats   1.0.1     ✔ stringr   1.6.0
✔ ggplot2   4.0.3     ✔ tibble    3.3.1
✔ lubridate 1.9.5     ✔ tidyr     1.3.2
✔ purrr     1.2.2     
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag()    masks stats::lag()
ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
url <- "https://raw.githubusercontent.com/0pree/symmetrical-robot/refs/heads/main/ai-career-threat-index.csv"

df <- read_csv(
  file = url,
  show_col_types = FALSE,
  progress = FALSE
)

glimpse(df)
Rows: 300
Columns: 26
$ slug                 <chr> "it-support-specialist", "systems-administrator",…
$ title                <chr> "IT Support Specialist", "Systems Administrator",…
$ category             <chr> "Technology", "Technology", "Technology", "Techno…
$ score                <dbl> 66, 51, 49, 49, 49, 47, 43, 40, 35, 34, 33, 31, 3…
$ risk_level           <chr> "High", "High", "Moderate", "Moderate", "High", "…
$ salary_low_usd       <dbl> 45000, 65000, 70000, 55000, 75000, 65000, 80000, …
$ salary_high_usd      <dbl> 75000, 115000, 115000, 90000, 130000, 105000, 140…
$ salary_trend         <chr> "declining", "declining", "mixed", "declining", "…
$ tasks_at_risk_count  <dbl> 5, 5, 4, 4, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4…
$ tasks_growing_count  <dbl> 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3…
$ defense_skill_1      <chr> "Administering AI Helpdesk Agents", "Infrastructu…
$ defense_skill_2      <chr> "Cybersecurity Fundamentals", "Cloud Architecture…
$ defense_skill_3      <chr> "Cloud Platform & Identity Management", "Security…
$ insight              <chr> "AI helpdesk agents now resolve most tier-1 ticke…
$ score_q1_2025        <dbl> 50, 42, NA, NA, 40, NA, 38, 30, 22, NA, NA, NA, 2…
$ score_q3_2025        <dbl> 55, 46, NA, NA, 45, NA, 42, 35, 25, NA, NA, NA, 2…
$ score_q1_2026        <dbl> 60, 50, NA, NA, 50, NA, 46, 40, 28, NA, NA, NA, 3…
$ score_q2_2026        <dbl> 65, 55, NA, NA, 55, NA, 50, 45, 30, NA, NA, NA, 3…
$ score_q3_2026        <dbl> 66, 51, 49, 49, 49, 47, 43, 40, 35, 34, 33, 31, 3…
$ soc_code             <chr> "15-1232", "15-1244", "15-1211", "15-1231", "15-1…
$ tier                 <dbl> 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 1, 1…
$ sub_task_automation  <dbl> 70, 56, 52, 56, 56, 50, 48, 44, 38, 38, 36, 34, 3…
$ sub_tool_maturity    <dbl> 80, 72, 76, 68, 66, 74, 72, 76, 68, 64, 76, 68, 6…
$ sub_adoption         <dbl> 68, 56, 64, 52, 52, 62, 55, 54, 54, 50, 54, 52, 4…
$ sub_agentic_exposure <dbl> 62, 54, 56, 54, 52, 54, 46, 44, 50, 46, 40, 48, 3…
$ agentic_risk         <chr> "High", "High", "High", "High", "High", "High", "…
top_earners_raw <- df %>%
  arrange(desc(salary_high_usd)) %>%
  slice_head(n = 10) %>%
  select(title, salary_high_usd, score, risk_level)

top_earners_raw
# A tibble: 10 × 4
   title                 salary_high_usd score risk_level
   <chr>                           <dbl> <dbl> <chr>     
 1 Radiologist                    500000    34 Moderate  
 2 Surgeon                        450000     6 Low       
 3 Physician                      400000    20 Low       
 4 Psychiatrist                   300000    12 Low       
 5 Investment Banker              275000    15 Low       
 6 AI Research Scientist          260000    17 Low       
 7 Dentist                        250000     9 Low       
 8 Lawyer                         250000    31 Moderate  
 9 Airline Pilot                  250000     7 Low       
10 AI Engineer                    220000    29 Low