product  <- c("Laptop", "Smartphone", "Tablet", "Headphones",
                   "Smartwatch", "Printer", "Keyboard", "Monitor")

unit_price <- c(185000, 95000, 68000, 12500, 28000, 42000, 8500, 56000)

units_sold  <- c(35, 80, 45, 160, 90, 38, 210, 52)

unit_cost   <- c(150000, 76000, 52000, 6500, 19000, 33000, 4200, 43000)

advertising_cost <- c(180000, 220000, 90000, 60000, 85000, 45000, 50000, 75000)

orders        <- c(35, 78, 44, 150, 88, 36, 200, 50)

returned_oders     <- c(2, 5, 2, 12, 6, 3, 8, 2)

product_data <- data.frame(product, unit_price, units_sold, unit_cost,
                           advertising_cost, orders, returned_oders)

head(product_data, 5)
dim(product_data)
names(product_data)  
str(product_data)

product_data$revenue   <- product_data$unit_price * product_data$units_sold

product_data$cogs      <- product_data$unit_cost  * product_data$units_sold

product_data$gross_profit   <- product_data$revenue - product_data$cogs

product_data$net_contribution <- product_data$gross_profit - 
                                   product_data$advertising_cost

product_data$profit_margin <- product_data$net_contribution / 
                                   product_data$revenue * 100

product_data$return_rate <- product_data$returned_oders / 
                                   product_data$orders * 100

print(product_data)

sum(product_data$revenue)
sum(product_data$cogs)
sum(product_data$gross_profit)
sum(product_data$net_contribution)

# mean and median
mean(product_data$net_contribution)
median(product_data$net_contribution)

# Highest and lowest net contribution
max(product_data$net_contribution)
min(product_data$net_contribution)

# Maximum and minimum return rates
max(product_data$return_rate)
min(product_data$return_rate)

# Ascending order
sort(product_data$net_contribution)

# Range
range_value <- max (product_data$net_contribution) -
               min (product_data$net_contribution)
print (range_value)

product_data$profitability  <-  NA

for (i in 1:nrow(product_data)) {

if(product_data$net_contribution[i] >= 750000) {
    product_data$profitability[i] <- "High Performer"
  } else if (product_data$net_contribution[i] >= 400000) {
    product_data$profitability[i] <- "Moderate Performer"
  } else {
    product_data$profitability[i] <- "Low Performer"
  }
}

product_data$return_risk   <- NA
 for (i in 1:nrow(product_data))  {
     if (product_data$return_rate[i] > 5) {
    product_data$return_risk[i] <- "High Return Risk"
  } else {
    product_data$return_risk[i] <- "Acceptable Return Rate"
  }
}
report <- product_data[, c("product", "net_contribution", "profit_margin",
                           "return_rate", "profitability", "return_risk")]
print (report)

for (i in 1:n) {
  cat(product_data$product[i], "| Revenue:", product_data$revenue[i],
      "| Net contribution:", product_data$net_contribution[i], "\n")
}
# ii. Count products per profitability category
count_high <- 0; count_moderate <- 0; count_low <- 0
for (i in 1:n) {
  if (product_data$profit_category[i] == "High Performer") {
    count_high <- count_high + 1
  } else if (product_data$profit_category[i] == "Moderate Performer") {
    count_moderate <- count_moderate + 1
  } else {
    count_low <- count_low + 1
  }
}
cat("High Performers:", count_high, "\n")
cat("Moderate Performers:", count_moderate, "\n")
cat("Low Performers:", count_low, "\n")
# iii. while loop: products needing attention (listed once each)
attention_count <- 0
j <- 1
while (j <= n) {
  if (product_data$net_contribution[j] < 400000 || product_data$return_rate[j] > 5) {
    cat("Needs attention:", product_data$product[j], "\n")
    attention_count <- attention_count + 1
  }
  j <- j + 1            # ensures the loop terminates
}
# iv. Total number requiring attention
cat("Total products requiring management attention:", attention_count, "\n")











    































Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: