impute_combined {MissingHandle} | R Documentation |
Fill Zeros as NA and Impute
Description
Imputation will be done. It will assign dates from start date to end date in the specified format. Finally, imputed data will be provided.
Usage
impute_combined(My_df, method_impute = na_kalman)
Arguments
My_df |
Data frame with 1st column as dates and others containing missing values denoted as zeros |
method_impute |
Select imputation method from ImputeTS package |
Value
imputed_df: Data frame of combined imputed data
References
Paul, R. K., & Garai, S. (2021). Performance comparison of wavelets-based machine learning technique for forecasting agricultural commodity prices. Soft Computing, 25(20), 12857-12873.
Paul, R. K., & Garai, S. (2022). Wavelets based artificial neural network technique for forecasting agricultural prices. Journal of the Indian Society for Probability and Statistics, 23(1), 47-61.
Garai, S., & Paul, R. K. (2023). Development of MCS based-ensemble models using CEEMDAN decomposition and machine intelligence. Intelligent Systems with Applications, 18, 200202.
Garai, S., Paul, R. K., Rakshit, D., Yeasin, M., Paul, A. K., Roy, H. S., Barman, S. & Manjunatha, B. (2023). An MRA Based MLR Model for Forecasting Indian Annual Rainfall Using Large Scale Climate Indices. International Journal of Environment and Climate Change, 13(5), 137-150.
Examples
# creating example ####
# 1st element ####
# Create a sequence of dates from "2011-01-01" to "2015-12-31"
dates <- seq(as.Date("2011-01-01"), as.Date("2011-03-31"), by="day")
# Generate random prices for each date
price_1 <- runif(length(dates), min=0, max=100)
# Combine the dates and prices into a data frame
df <- data.frame(Dates = dates, Price_a = price_1)
# Create a sequence of dates from "2016-02-01" to "2022-12-31"
dates2 <- seq(as.Date("2011-05-01"), as.Date("2011-12-31"), by="day")
# Generate random prices for each date
price_2 <- runif(length(dates2), min=0, max=100)
# Combine the dates and prices into a data frame
df2 <- data.frame(Dates = dates2, Price_a = price_2)
# Merge the two data frames row-wise
df <- rbind(df, df2)
# Create a sequence of dates from "2016-02-01" to "2022-12-31"
dates3 <- seq(as.Date("2012-02-01"), as.Date("2012-12-31"), by="day")
# Generate random prices for each date
price_3 <- runif(length(dates3), min=0, max=100)
# Combine the dates and prices into a data frame
df3 <- data.frame(Dates = dates3, Price_a = price_3)
# Merge the two data frames row-wise
df <- rbind(df, df3)
# Create a sequence of dates from "2016-02-01" to "2022-12-31"
dates4 <- seq(as.Date("2013-04-01"), as.Date("2022-12-31"), by="day")
# Generate random prices for each date
price_4 <- runif(length(dates4), min=0, max=100)
# Combine the dates and prices into a data frame
df4 <- data.frame(Dates = dates4, Price_a = price_4)
# Merge the two data frames row-wise
df <- rbind(df, df4)
# Specify column data types
df <- data.frame(Dates = as.Date(df$Dates),
price_a = round(as.numeric(df$Price_a)))
# 2nd element ####
# Create a sequence of dates from "2011-01-01" to "2015-12-31"
dates <- seq(as.Date("2011-01-01"), as.Date("2011-05-31"), by="day")
# Generate random prices for each date
price_1 <- runif(length(dates), min=0, max=100)
# Combine the dates and prices into a data frame
df_second <- data.frame(Dates = dates, Price_b = price_1)
# Create a sequence of dates from "2016-02-01" to "2022-12-31"
dates2 <- seq(as.Date("2011-06-01"), as.Date("2011-10-31"), by="day")
# Generate random prices for each date
price_2 <- runif(length(dates2), min=0, max=100)
# Combine the dates and prices into a data frame
df_second2 <- data.frame(Dates = dates2, Price_b = price_2)
# Merge the two data frames row-wise
df_second <- rbind(df_second, df_second2)
# Create a sequence of dates from "2016-02-01" to "2022-12-31"
dates3 <- seq(as.Date("2012-01-01"), as.Date("2012-12-31"), by="day")
# Generate random prices for each date
price_3 <- runif(length(dates3), min=0, max=100)
# Combine the dates and prices into a data frame
df_second3 <- data.frame(Dates = dates3, Price_b = price_3)
# Merge the two data frames row-wise
df_second <- rbind(df_second, df_second3)
# Create a sequence of dates from "2016-02-01" to "2022-12-31"
dates4 <- seq(as.Date("2013-03-01"), as.Date("2022-12-31"), by="day")
# Generate random prices for each date
price_4 <- runif(length(dates4), min=0, max=100)
# Combine the dates and prices into a data frame
df_second4 <- data.frame(Dates = dates4, Price_b = price_4)
# Merge the two data frames row-wise
df_second <- rbind(df_second, df_second4)
# Specify column data types
df_second <- data.frame(Dates = as.Date(df_second$Dates),
price_b = round(as.numeric(df_second$Price_b)))
# my_list ####
# Create a list
my_list <- list()
# Add the data frame to the list
my_list$df <- df
my_list$df_second <- df_second
# getting output ####
my_combined_data <- clean_and_combine(my_list = my_list)
print(head(my_combined_data))
my_imputed_data <- impute_combined(my_combined_data)
print(head(my_imputed_data))