# Convert column "Date" to date format if not already converted
df$Date <- as.Date(df$Date, format = "%d/%m/%Y")
# Extract year information from column "Date"
df$Year <- format(df$Date, "%Y")
# Remove non-numeric characters from the "Revenue" column
df$Revenue <- as.numeric(gsub("[^0-9.]", "", df$Revenue))
# Aggregate the revenue by year
revenue_by_year <- aggregate(Revenue ~ Year, data = df, FUN = sum)
revenue_by_year
## Year Revenue
## 1 1999 154717359
## 2 2000 318657975
## 3 2001 396511429
## 4 2002 454326331
# Plot the revenue by year
plot(revenue_by_year$Year, revenue_by_year$Revenue, type = "bar",
xlab = "Year", ylab = "Revenue", main = "Revenue by Year")
## Warning in plot.xy(xy, type, ...): plot type 'bar' will be truncated to first
## character

# Filter data for ProductID = 392 (Maximus RP-01)
df_392 <- subset(df, ProductID == 392)
head(df_392)
## ProductID Date Revenue Revenue.RP_1 Year
## 5349 392 1999-08-15 6126.75 Maximus RP-01 1999
## 22466 392 1999-11-15 6126.75 Maximus RP-01 1999
## 50180 392 2000-05-15 6126.75 Maximus RP-01 2000
## 57195 392 2000-07-01 6126.75 Maximus RP-01 2000
## 61172 392 2000-08-01 6126.75 Maximus RP-01 2000
## 65687 392 2000-09-01 6126.75 Maximus RP-01 2000
# Aggregate the revenue by year
revenue_RP_01_by_year <- aggregate(Revenue ~ Year, data = df_392, FUN = sum)
revenue_RP_01_by_year
## Year Revenue
## 1 1999 12253.50
## 2 2000 42887.25
## 3 2001 36760.50
## 4 2002 104154.75
# Plot the revenue for ProductID = 392
plot(revenue_RP_01_by_year$Year, revenue_RP_01_by_year$Revenue, type = "bar",
xlab = "Year", ylab = "Revenue", main = "Revenue for Maximus RP-01")
## Warning in plot.xy(xy, type, ...): plot type 'bar' will be truncated to first
## character

library(forecast)
## Registered S3 method overwritten by 'quantmod':
## method from
## as.zoo.data.frame zoo
# Convert dataframe to time data series
ts_data <- ts(revenue_by_year$Revenue, start = min(revenue_by_year$Year), frequency = 1)
# Sales forecast for the next year
forecast_result <- forecast(ts_data, h = 1)
# Plot revenue and forecast charts
plot(forecast_result, main = "Revenue Forecast")
lines(forecast_result$mean, col = "blue", lty = 2) # Draw a blue forecast line
lines(fitted(forecast_result), col = "red", lty = 2) # Draw the known revenue line in red

# Convert dataframe to time data series
ts_data_rp <- ts(revenue_RP_01_by_year$Revenue, start = min(revenue_by_year$Year), frequency = 1)
# Sales forecast for the next year
forecast_result_rp <- forecast(ts_data_rp, h = 1)
# Plot revenue and forecast charts
plot(forecast_result_rp, main = "Revenue Forecast for Maximus RP 01")
lines(forecast_result_rp$mean, col = "blue", lty = 2) # Draw a blue forecast line
lines(fitted(forecast_result_rp), col = "red", lty = 2) # Draw the known revenue line in red
