0% found this document useful (0 votes)
4 views16 pages

BA Code

The document covers various exercises in R programming, including basic operations, data structures, conditional statements, and data visualization techniques. It also discusses exploratory data analysis and the implementation of machine learning techniques for predictive analysis using regression and classification models. Key topics include data manipulation, statistical functions, and model evaluation methods.

Uploaded by

vignesabi14
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views16 pages

BA Code

The document covers various exercises in R programming, including basic operations, data structures, conditional statements, and data visualization techniques. It also discusses exploratory data analysis and the implementation of machine learning techniques for predictive analysis using regression and classification models. Key topics include data manipulation, statistical functions, and model evaluation methods.

Uploaded by

vignesabi14
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

[Link].

:1b Basics of R-programming

x<-2
x
5+3
10-2
3*2
8/2
num_var<-10.5
int_var<-[Link](5)
char_var<-"Hello"
bool_var<-TRUE
class(num_var)
class(int_var)
class(char_var)
class(bool_var)
d=10
z<-2
k<<-3
4->v
5->>n
a<-10
b<-5
sum<-a+b
diff<-a-b
pro<-a*b
quo<-a/b
exp<-a^b
mod<-a%%b
int_div<-a%/%b
print(sum)
print(diff)
print(pro)
print(quo)
print(exp)
print(mod)
print(int_div)
x<-10
y<-20
print(x==y)
print(x!=y)
print(x<y)
print(x>y)
print(x<=y)
print(x>=y)
p<-TRUE
q<-FALSE
print(p&q)
print(p|q)
print(!p)
ip=readline(prompt="Input your Dept:")
print(ip)

[Link].:2 Data Structures in R

num_v1 <- c(1, 2, 3.14, 4.33, 5)


num_v2 <- c(1,1,2,2,2)
num_v3 <- c(1,1,2,2,3,4)
char_v2 <- c("a", "psg", "3")
int_v3 <- c(2L, 33L, 1L, 56L)
log_v4 <- c(TRUE, FALSE, TRUE, FALSE, TRUE)
print(num_v1)
print(char_v2)
print(int_v3)
print(log_v4)
class(num_v1)
class(char_v2)
class(int_v3)
class(log_v4)
print(num_v1[1])
print(num_v1[c(1, 3)])
print(num_v1+2)
print(num_v1*10)
print(num_v1>4)
print(sum(num_v1))
print(median(num_v1))
print(mean(num_v1))
print(max(num_v1))
print(min(num_v1))
print(mode(num_v2))
print(sd(num_v1))
print(num_v1+num_v2)
print(num_v1+num_v3)
print((num_v1-num_v2))
test_list<-list(roll=1,name="hello",score=c(1,2,3),FALSE)
print(test_list[[3]])
print(test_list$name)
print(test_list$score)
mat1<-matrix(1:9,nrow=3,ncol=3)
print(mat1)
mat2<-matrix(1:9,nrow=3,ncol=3,byrow=TRUE)
print(mat2)
rownames<-c("row1","row2","row3")
colnames<-c("col1","col2","col3")
mat3<-matrix(c(1:9),ncol=3,dimnames = list(rownames,colnames))
print(mat3)
print(mat1[1,2])
print(mat1[2,])
print(mat1[,3])
print(mat1+mat2)
anmat<-matrix(9:1,nrow=3,ncol=3)
print(anmat)
print(mat1+anmat)
print(anmat-mat1)
print(mat1*anmat)
print(anmat/mat1)
stu_id<-c(1:3)
stu_name<-c("Abc","Def","Ghi")
stu_rank<-c("third","first","second")
stu_data<-[Link](stu_id,stu_name,stu_rank)
stu_data
data_frame<-[Link](Names=c("Neetha","Khan","Carol"),
Age=c(10,25,30),
Gender=c("Female","Male","Female"))
print(data_frame)
print(data_frame$Names)
print(data_frame[1,])
print(data_frame[,2])
print(data_frame[1,1])
subset_female<-data_frame[data_frame$Gender=='Female',]
print(subset_female)
data_frame<-data_frame[order(data_frame$Names),]
print(data_frame)
summary(data_frame)
arr=array(1:8,dim=c(2,2,2))
print(arr)
fac=factor(c("Male","Female","Male","Male","Female","Male","Female"))
print(fac)

[Link] Conditional Statements

[Link] a student's marks as input and


classify the grade as:
I. A if marks > 80
ii. B if 60 ≤ marks ≤ 80
iii. C if 40 ≤ marks < 60
iv. Fail if marks < 40
m=readline(prompt="Enter your Mark:")
print(m)
if(m>80){
print("Grade A")
}else if(m>=60 && m<=80){
print("Grade B")
}else if(m>=40 && m<=60){
print("Grade C")
}else{
print("Fail")
}
b.A store gives discounts based on
purchase amount:
[Link] the bill is above ₹5000, apply a 20% discount. [Link]
between ₹2000 and ₹5000, apply a 10% discount.
[Link], no discount.
[Link] the purchase amount as input and calculate the final bill.

d<-[Link](readline(prompt = "Enter the Purchase Amount:")) print(d)


if(d>5000){
price<-d-(d*0.2)
}else if(d>=2000 && d<=5000){
price<-d-(d*0.1)
}else{
price=d
}
print(paste("Bill Amount:",price))
[Link] a program that takes a number N and computes the sum of the first N natural
numbers using a while loop. n<-[Link](readline(prompt="Enter a number:"))
print(n)
sum<-0
while(n>0){
sum<-sum+n
n<-n-1
}
print(sum)
[Link] a function where arguments are (1) temperature, (2) Measure (C/F). The
function should transform C to F and F to C.
convertTemp<-function(a,b){
b<-toupper(b)
if(b=="C"){
Temp=(9/5)*a+32
}else{
Temp=(a-32)*(5/9)
}
return(Temp)
}
print(convertTemp(30,"C"))
print(convertTemp(45,"F"))

[Link] a loop which transforms TempinAD from C to F.


TempinAD<-c(32,32,30,31.5,29,30,35)

Temp<-c(32,32,30,31.5,29,30,35)
for(i in 1:length(Temp)){
Temp[i]<-(9/5)*Temp[i]+32
print(paste(Temp[i]))
}
[Link] Create a data set and visualize using R
[Link]

diam<-[Link]("C:/Users/sjosh/Downloads/[Link]")
head(diam)
tail(diam)
str(diam)
summary(diam)
plot(diam$carat,diam$price,main="Carat Vs
Price",xlab="Carat",ylab="Price",col="cyan",pch=8)
sorted_diam<-diam[order(diam$carat),]
plot(sorted_diam$carat,sorted_diam$price,type="l",
col="purple",lwd=2,main="Price
Overview",xlab="Carat",ylab="Price")
cut_counts<-table(diam$cut)
print(cut_counts)
barplot(cut_counts,[Link]=names(cut_counts),
col="pink",main="Distribution of Diamond Cuts",xlab="Cut
Type",ylab="Count")
barplot(cut_counts,[Link]=names(cut_counts),horiz=TRUE,col="light
blue",
main="Distribution of Diamond Cuts",xlab="Count",ylab="Cut
Type")
barplot(cut_counts,col="violet",main="Distribution of Diamond
Cuts",xlab="Cut Type",ylab="Count",las=2)
diam$Volume<-diam$x*diam$y*diam$z
hist(diam$Volume,col="lavender",main="Distribution of Diamond
Volume",
xlab="Volume",breaks=10)
boxplot(diam$carat,main="Boxplot of
Carat",ylab="Carat",col="lightgreen")
pie(cut_counts,col=rainbow(length(cut_counts)),main="Distribution of
Diamond Cuts",
labels=names(cut_counts))
numeric_data<-diam[,sapply(diam,[Link])]
pairs(numeric_data,main="Pairwise Scatter plot for Diamonds
dataset",col="purple")
corr_matrix<-cor(numeric_data)
print(corr_matrix)
[Link]("corrplot")
library(corrplot)
corrplot(corr_matrix,method="color",type="full",col=colorRampPalette(c(
"purple","violet",

"lightblue"))(200),[Link]="black",[Link]="darkblue",[Link]=45)
[Link]("ggplot2")
library(ggplot2)
[Link]("reshape2")
library(reshape2)
corr_data<-melt(corr_matrix)
print(corr_data)
ggplot(corr_data,aes(Var1,Var2,fill=value))+geom_tile()+

scale_fill_gradient2(low="blue",mid="white",high="magenta",midpoint=0
)+
geom_text(aes(label=round(value,2)),color="black",size=4)+
theme_minimal()+labs(title="Correlation Heatmap of Diamonds
Dataset",x="",y="")
[Link]("dplyr")
library(dplyr)
filtered_data<-filter(diam,price>5000)
filtered_data
selected_data<-select(diam,carat,price,cut)
selected_data
sorted_data<-arrange(diam,desc(price))
sorted_data
mutated_data<-mutate(diam,price_per_carat=price/carat)
mutated_data
summary_data<-diam%>%
group_by(cut)%>%
summarize(avg_price=mean(price))
Summary_data

Exp. No: 05 Exploratory Data Analysis Using R


[Link]

data <- [Link]("C:/Users/sjosh/OneDrive/Desktop/Mall_Customers.csv")


head(data)
colSums([Link](data))
data$Age[[Link](data$Age)] <- median(data$Age, [Link] = TRUE)
data$[Link]..k..[[Link](data$[Link]..k..)] <-
median(data$[Link]..k.., [Link] = TRUE)
data$[Link]..1.100.[[Link](data$[Link]..1.100.)] <-
median(data$[Link]..1.100., [Link] = TRUE)
colSums([Link](data))
data$Genre <- ifelse(data$Genre == "Male", 0, 1)
head(data$Genre)
data$CustomerValue <- data$[Link]..k.. +
data$[Link]..1.100.
head(data[, c("[Link]..k..", "[Link]..1.100.",
"CustomerValue")])
data <- subset(data, select = -c(CustomerID))
head(data)
min_max_scaling <- function(x){
(x - min(x)) / (max(x) - min(x))
}
data$Age <- min_max_scaling(data$Age)
data$[Link]..k.. <- min_max_scaling(data$[Link]..k..)
data$[Link]..1.100. <-
min_max_scaling(data$[Link]..1.100.)
[Link](data,"cleaned_mall_data.csv",[Link] = FALSE)

[Link]: 6(a) Implementation of ML techniques for Predictive Analysis using


Regression models

library(caret)
library(tidyverse)

options(timeout = 600)
[Link]("lava", repos = "[Link]
[Link]("recipes", repos = "[Link]
[Link]("caret", repos = "[Link]

[Link]("stringi")
[Link]("caret")
[Link]("tidyverse")
[Link]("randomForest")
[Link]("rpart")
[Link]("e1071")

data <- mtcars


str(data)
[Link](123)
split <- createDataPartition(data$mpg, p = 0.8, list = FALSE)
train_data <- data[split, ]
test_data <- data[- split, ]
model_lm <- lm(mpg~.,data=train_data)
summary(model_lm)
pred_lm <- predict(model_lm, test_data)
cat("Linear Regression Performance:\n")
print(postResample(pred_lm, test_data$mpg))
library(randomForest)
model_rf <- randomForest(mpg~.,data=train_data)
summary(model_lm)
pred_rf <- predict(model_rf, test_data)
cat("Random Forest Performance:\n")
print(postResample(pred_rf, test_data$mpg))
plot(test_data$mpg, pred_rf, main="Actual vs Predicted MPG (Random Forest)", xlab='Actual',
ylab='Predicted',col='blue', pch=19)
abline(0,1,col='red')
library(randomForest)
library(rpart)
library(e1071)
data <- mtcars
[Link](123)
models <- list()
split <- createDataPartition(data$mpg, p = 0.8, list = FALSE)
train_data <- data[split, ]
test_data <- data[- split, ]
control <- trainControl(method='cv',number=5)
models$lm <- train(mpg~.,data=train_data,method='lm',trControl=control)
models$knn <- train(mpg~.,data=train_data,method='knn',trControl=control)
models$tree <- train(mpg~.,data=train_data,method='rpart',trControl=control)
models$rf <- train(mpg~.,data=train_data,method='rf',trControl=control)
models$svm <-train(mpg~.,data=train_data,method='svmRadial',trControl=control)
results <- [Link](Model = character(), RMSE = numeric(), Rsquared = numeric(),
MAE = numeric(), stringsAsFactors = FALSE)
for (model_name in names(models)){
model <- models[[model_name]]
predictions <- predict(model, newdata=test_data)
metrics <- postResample(predictions, obs=test_data$mpg)
results <- rbind(results, [Link](Model=model_name, RMSE =
metrics['RMSE'],Rsquared=metrics['Rsquared'],MAE=metrics['MAE']))
}
cat("Regression Model Performance Comparision:\n")
print(results[order(results$RMSE),])
barplot(results$RMSE, [Link]=results$Model, col = "skyblue", main='Model Comparision -
RMSE', xlab='Model', ylab='RMSE',las=2)

[Link](b) Implementation of ML Techniques for Predictive Analysis


Classification Models for Predictive Analysis

options(timeout = 600)
[Link]("lava", repos = "[Link]
[Link]("recipes", repos = "[Link]
[Link]("caret", repos = "[Link]

[Link]("stringi")
[Link]("caret")
[Link]("tidyverse")
[Link]("randomForest")
[Link]("rpart")
[Link]("e1071")

library (tidyverse)
library(caret)
library(randomForest)
data <- iris
[Link](123)
split <- createDataPartition(iris$Species, p=0.8, list=FALSE)
train_data <- iris[split,]
test_data <- iris[-split,]
model_rf <- randomForest(Species ~., data = train_data)
predictions <- predict(model_rf, newdata = test_data)
confusionMatrix(predictions, test_data$Species)
models <- list()
control <- trainControl(method='cv',number=5)
models$logistic <- train(Species ~., data = train_data, method = 'multinom', trControl = control,
trace = FALSE)
models$knn <- train(Species ~., data = train_data, method = 'knn', trControl = control)
models$tree <- train(Species ~., data = train_data, method = 'rpart', trControl = control)
models$svm <- train(Species ~., data = train_data, method = 'svmLinear',trControl = control)
models$rf <- train(Species ~., data = train_data, method = 'rf',trControl = control)
results <- [Link](Model = character(), Accuracy = numeric(), stringsAsFactors = FALSE)
for(model_name in names(models)){
model <- models[[model_name]]
predictions <- predict(model, newdata = test_data)
cm <- confusionMatrix(predictions, test_data$Species)
results <- rbind(results, [Link](Model = model_name, Accuracy =
cm$overall["Accuracy"]))
cat("\nModel:", model_name, "\n")
print(cm$table)}
cat("Model Accuracy Comparision:\n")
print(results[order(-results$Accuracy),])
results$Accuracy <- [Link](results$Accuracy)
barplot(results$Accuracy, [Link] = results$Model, col = "skyblue", ylim = c(0,1.1),
main ="Classification Model Accuracy", xlab = "Model", ylab = "Accuracy", las = 2)
text(x = barplot(results$Accuracy,plot = FALSE),y = results$Accuracy + 0.05, labels =
round(results$Accuracy,2))

[Link] Predict the Customer Credit Risk for Credit card data-set
using Linear Regression
[Link]

library(readr)
library(dplyr)
library(ggplot2)
data <- read_csv("C:/Users/Nandhini Akila/Downloads/credit_score.csv")
data <- data %>%
mutate(
AGE = [Link](gsub("[^0-9]", "", Age)),
SALARY = [Link](gsub("[^0-9.]", "", Annual_Income)),
AMOUNT = [Link](gsub("[^0-9.]", "", Outstanding_Debt)),
CREDIT_SCORE = [Link](factor(Credit_Score)),
OCCUPATION = [Link](Occupation) )
data <- [Link](data)
[Link](123)
data$PROPERTY <- sample(c("Owned", "Rented"), nrow(data), replace = TRUE)
data$TYPE <- [Link](data$Type_of_Loan)
data$PROPERTY <- [Link](data$PROPERTY)
data$TYPE <- [Link](substr([Link](data$TYPE), 1, 10))
str(data)
model <- lm(CREDIT_SCORE ~ AMOUNT + SALARY + AGE + OCCUPATION +
PROPERTY + TYPE, data = data)
data$prediction <- predict(model, data)
ggplot(data, aes(x = CREDIT_SCORE, y = prediction)) +
geom_point(color = "blue", size = 2) +
geom_abline(intercept = 0, slope = 1, color = "red", linetype = "dashed") +
labs(
title = "Actual Vs Predicted Credit Score",
x = "Actual Credit Score",
y = "Predicted Credit Score"
)+
theme_minimal()
rmse <- sqrt(mean((data$CREDIT_SCORE - data$prediction)^2))
cat("RMSE:", rmse)

[Link] Apply HR Analytics to make a prediction of the demand for hourly-employees


for the following month or for the next five years
Date,Hourly
2019-01-01,135
2019-02-01,234
2019-03-01,178
2019-04-01,255
2019-05-01,269
2019-06-01,198
2019-07-01,156
2019-08-01,290
2019-09-01,243
2019-10-01,287
2019-11-01,310
2019-12-01,330
2020-01-01,200
2020-02-01,220
2020-03-01,210
2020-04-01,260
2020-05-01,275
2020-06-01,240
2020-07-01,230
2020-08-01,300

[Link]("rstan")
[Link]("prophet")
library(prophet)
library(readr)
library(dplyr)
hdata<-read_csv("C:/Users/Nandhini Akila/Downloads/hr_hourly_employees_demand.csv")
prophet_data<-hdata%>% select(Date,Hourly) %>%
rename(ds=Date,y=Hourly)
prophet_data
prophet_data$ds<-[Link](paste0(prophet_data$ds,"-01"))
prophet_data
model<-prophet(prophet_data)
future<-make_future_dataframe(model,periods = 12,freq = "month")
forecast<-predict(model,future)
plot(model,forecast) + ggtitle("Prophet Forecast: Hourly Employee Demand")
prophet_plot_components(model,forecast)

[Link] Apply Analytics For Forecasting And Inventory Planning For a large retailer
[Link]
[Link]("tidyverse")
library(tidyverse)
[Link]("lubridate")
library(lubridate)
[Link]("forecast")
library(forecast)
[Link]("tseries")
library(tseries)
train <-[Link]("C:/Users/sjosh/OneDrive/Desktop/walmart_forecasting/[Link]")
stores <-[Link]("C:/Users/sjosh/OneDrive/Desktop/walmart_forecasting/[Link]")
data <- merge(train,stores,by="Store")
head(data)
data$Date <- ymd(data$Date)
head(data)
store_data <- data %>% filter(Store ==1,Dept==1) %>% arrange(Date)
store_data
ts_sales <-ts(store_data$Weekly_Sales,frequency = 52,start=c(2010,5))
ts_sales
plot(ts_sales, main="weekly sales")
stl_decomp <- stl(ts_sales,[Link]="periodic")
plot(stl_decomp)
fit <- [Link](ts_sales)
forecast_sales <-forecast(fit,h=12)
plot(forecast_sales)
avg_demand <- mean(store_data$Weekly_Sales)
sd_demand <-sd(store_data$Weekly_Sales)
lead_time <-2
service_level <-1.65
reorder_point <-avg_demand * lead_time + service_level * sd_demand *
sqrt(lead_time)
cat("reorder point:",round(reorder_point,2),"\n")

Ex:10 Predictive Analytics


[Link]

[Link]("lava")
[Link]("recipes")
[Link]("caret")
[Link]("tideyverse")
[Link]("randomForest")
[Link]("arules")
library(tidyverse)
library(recipes)
library(caret)
library(lava)
library(randomForest)
library(arules)
data <- [Link]("C:/Users/PRIYA/Downloads/archive (9)/marketing_campaign1.csv")
colnames(data)
str(data)
data <- [Link](data)
data$TotalSpend <- rowSums(data[, c(
"MntWines","MntFruits","MntMeatProducts",
"MntFishProducts","MntSweetProducts","MntGoldProds"
)], [Link] = TRUE)
data <- data %>% select(-ID, -Dt_Customer, -Z_CostContact, -Z_Revenue)
data$Education <- [Link](data$Education)
data$Marital_Status <- [Link](data$Marital_Status)
library(caret)
[Link](123)
split <- createDataPartition(data$TotalSpend, p = 0.8, list = FALSE)
train_data <- data[split, ]
test_data <- data[-split, ]
model_rf <- randomForest(TotalSpend ~ ., data = train_data, ntree = 100)
pred <- predict(model_rf, test_data)
rmse <- sqrt(mean((pred - test_data$TotalSpend)^2))
cat("RMSE:", round(rmse, 2), "\n")
varImpPlot(model_rf)
cat("\n--- Predicting TotalSpend ---\n")
new_customer <- [Link](
Year_Birth = 1980,
Education = factor("Graduation", levels = levels(train_data$Education)),
Marital_Status = factor("Married", levels = levels(train_data$Marital_Status)),
Income = 60000,
Kidhome = 1,
Teenhome = 0,
Recency = 10,
MntWines = 200,
MntFruits = 50,
MntMeatProducts = 150,
MntFishProducts = 40,
MntSweetProducts = 30,
MntGoldProds = 20,
NumDealsPurchases = 3,
NumWebPurchases = 5,
NumCatalogPurchases = 2,
NumStorePurchases = 6,
NumWebVisitsMonth = 4,
AcceptedCmp3 = 0,
AcceptedCmp4 = 0,
AcceptedCmp5 = 1,
AcceptedCmp1 = 0,
AcceptedCmp2 = 0,
Complain = 0,
Response = 1
)
predicted_spend <- predict(model_rf, new_customer)
cat("Predicted TotalSpend:", round(predicted_spend, 2), "\n")
data$Churn <- ifelse(data$TotalSpend < 300, "Yes", "No")
data$Churn <- [Link](data$Churn)
data <- data %>% select(-TotalSpend)
[Link](123)
split <- createDataPartition(data$Churn, p = 0.8, list = FALSE)
train_data <- data[split, ]
test_data <- data[-split, ]
model_churn <- randomForest(Churn ~ ., data = train_data, ntree = 100)
pred <- predict(model_churn, test_data)
cm <- confusionMatrix(pred, test_data$Churn)
print(cm)
accuracy <- cm$overall['Accuracy']
recall <- cm$byClass['Sensitivity']
precision <- cm$byClass['Pos Pred Value']
f1_score <- 2 * (precision * recall) / (precision + recall)
cat("\nModel Performance:\n")
cat("Accuracy :", round(accuracy, 4), "\n")
cat("Recall :", round(recall, 4), "\n")
cat("Precision:", round(precision, 4), "\n")
cat("F1 Score :", round(f1_score, 4), "\n")
products <- data %>%
select(MntWines, MntFruits, MntMeatProducts,
MntFishProducts, MntSweetProducts, MntGoldProds)
products <- [Link](lapply(products, function(x)
[Link](ifelse(x > 0, "Yes", "No"))))
transactions <- as(products, "transactions")
rules <- apriori(transactions, parameter = list(supp = 0.01, conf = 0.5))
inspect(head(sort(rules, by = "lift"), 10))
new_customer_rules <- c("MntMeatProducts=Yes", "MntFruits=Yes")
matched_rules <- subset(rules, lhs %ain% new_customer_rules)
inspect(sort(matched_rules, by = "confidence")[1:5])

You might also like