Tạo bảng ví dụ:

#Tạo cột ngày
date<-seq(as.Date("2023-01-01"), as.Date("2023-11-09"), by="days")

#Tạo cột doanh thu
set.seed(123)
revenue<-runif(length(date), min = 1000, max = 2000)
revenue <- round(revenue, digits = 2)

df<-data.frame(date, revenue)

#Tạo cột Tên và Loại sản phẩm
type<-c('A', 'B', 'C')
name<-c('X', 'Y', 'Z')

df$type<-sample(type, size = nrow(df), replace = TRUE)
df$name<-sample(name, size = nrow(df), replace = TRUE)

df<-df %>% 
  select(name, date, type, revenue)

Cách I: Dùng gsub

df$name<-ifelse(df$type %in% c('A', 'B')  & df$revenue > 1200 & month(df$date) > 2, 
                  gsub('X', 'NN', df$name), df$name)

Cách II: Gán biến

df$name[df$name == "X" & df$type %in% c('A', 'B') & df$revenue > 1200 & month(df$date) > 2]<-"NN"

Cách III: Dùng mutate

df <- df %>%
  select(name, date, type, revenue) %>%
  mutate(name = ifelse(name == "X" & type %in% c('A', 'B') & revenue > 1200 & month(date) > 2,
                       "NN", name))

Kết quả khi thỏa mãn điều kiện name là X sẽ đổi thành NN, kiểm tra ở bảng dưới: