# csv file
data <- read_csv('https://raw.githubusercontent.com/rfordatascience/tidytuesday/main/data/2025/2025-07-01/weekly_gas_prices.csv')
## Rows: 22360 Columns: 5
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (3): fuel, grade, formulation
## dbl (1): price
## date (1): date
##
## ℹ 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.
data$grade %>%
head(10)
## [1] "regular" "regular" "regular" "regular" "regular" "regular" "regular"
## [8] "regular" "regular" "regular"
str_detect(data$grade, "premium") %>%
head(10)
## [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
sum(str_detect(data$grade, "premium"))
## [1] 4788
data %>%
summarise(num_premium = sum(str_detect(grade, "premium"))) %>%
head(10)
## # A tibble: 1 × 1
## num_premium
## <int>
## 1 4788
data %>%
mutate(col_premium = str_extract(grade, "premium")) %>%
select(grade, "col_premium") %>%
filter(!is.na(col_premium)) %>%
print(n = 10)
## # A tibble: 4,788 × 2
## grade col_premium
## <chr> <chr>
## 1 premium premium
## 2 premium premium
## 3 premium premium
## 4 premium premium
## 5 premium premium
## 6 premium premium
## 7 premium premium
## 8 premium premium
## 9 premium premium
## 10 premium premium
## # ℹ 4,778 more rows
data %>%
mutate(col_91 = str_replace(grade, "Premium", "91")) %>%
select(grade, col_91) %>%
print(n = 10)
## # A tibble: 22,360 × 2
## grade col_91
## <chr> <chr>
## 1 regular regular
## 2 regular regular
## 3 regular regular
## 4 regular regular
## 5 regular regular
## 6 regular regular
## 7 regular regular
## 8 regular regular
## 9 regular regular
## 10 regular regular
## # ℹ 22,350 more rows