But how do I code this in R?
You didn't provide a reproducible example, so here is a data frame with dummy data that represents your data:
waste_data <- structure(list(Schedule = c("Every Friday", "Fortnightly B Friday", 
"Fortnightly A Tuesday", "Every Tuesday", "Every Tuesday", "Fortnightly A Tuesday", 
"Fortnightly B Monday"), Weight = 5:11), class = "data.frame", row.names = c(NA, 
-7L))
waste_data
#                Schedule Weight
# 1          Every Friday      5
# 2  Fortnightly B Friday      6
# 3 Fortnightly A Tuesday      7
# 4         Every Tuesday      8
# 5         Every Tuesday      9
# 6 Fortnightly A Tuesday     10
# 7  Fortnightly B Monday     11
To apply your logic on the data, you can create a new column and use ifelse or case_when to generate the column's elements. Say that your new columns is named TrueWeight:
Option 1
# Following @missuse's comments
waste_data$TrueWeight <- ifelse(grepl("^Fortn", waste_data$Schedule),  
                                2 * waste_data$Weight,  
                                waste_data$Weight)
waste_data
#                Schedule Weight TrueWeight
# 1          Every Friday      5          5
# 2  Fortnightly B Friday      6         12
# 3 Fortnightly A Tuesday      7         14
# 4         Every Tuesday      8          8
# 5         Every Tuesday      9          9
# 6 Fortnightly A Tuesday     10         20
# 7  Fortnightly B Monday     11         22
Option 2
# Following MIK's answer
waste_data <- waste_data |> 
       mutate(TrueWeight = case_when(
                                str_detect(Schedule, "^Fortn") ~ 2 * Weight,
                                TRUE ~ 1* Weight))
waste_data
#                Schedule Weight TrueWeight
# 1          Every Friday      5          5
# 2  Fortnightly B Friday      6         12
# 3 Fortnightly A Tuesday      7         14
# 4         Every Tuesday      8          8
# 5         Every Tuesday      9          9
# 6 Fortnightly A Tuesday     10         20
# 7  Fortnightly B Monday     11         22