R
PROGRAM
1
csv_data <-
read.csv("Y:\\program.csv")
print(csv_data)
summary(csv_data)
csv_data$rowSums <-
rowSums (csv_data [, c ("mark1", "mark2",
"mark3")], na.rm = TRUE)
print (csv_data [, c ("NAME",
"subject", "rowSums")])
csv_data$rowMeans <-
rowMeans (csv_data [, c ("mark1","mark2",
"mark3")], na.rm = TRUE)
print (csv_data [, c ("NAME",
"subject", "rowMeans")])
csv_data$maxMarks <-
apply (csv_data [, c ("mark1", "mark2",
"mark3")], 1, max, na.rm = TRUE)
print (csv_data [, c ("NAME",
"subject", "maxMarks")])
csv_data$minMarks <-
apply (csv_data [, c ("mark1", "mark2",
"mark3")], 1, min, na.rm = TRUE)
print (csv_data [, c ("NAME",
"subject”, "minMarks")])
csv_data$meanMarks <- rowMeans
(csv_data [, c ("mark1", "mark2", "mark3")],
na.rm = TRUE)
print (csv_data [, c ("NAME",
"subject", "meanMarks")])
csv_data$medianMarks
<- apply (csv_data [, c ("mark1", "mark2",
"mark3")], 1, median, na.rm = TRUE)
print (csv_data [, c ("NAME",
"subject", "medianMarks")])
csv_data$productMarks
<- apply (csv_data [, c ("mark1", "mark2",
"mark3")], 1, prod, na.rm = TRUE)
print (csv_data [, c ("NAME",
"subject", "productMarks")])
csv_data$sdMarks <-
apply (csv_data [, c ("mark1", "mark2",
"mark3")], 1, sd, na.rm = TRUE)
print (csv_data [, c ("NAME",
"subject", "sdMarks")])
csv_data$varianceMarks
<- apply (csv_data [, c ("mark1", "mark2",
"mark3")], 1, var, na.rm = TRUE)
print (csv_data [, c ("NAME",
"subject”, varianceMarks")])
csv_data$rangeMarks <-
apply (csv_data [, c ("mark1", "mark2",
"mark3")], 1, function(x) diff (range (x, na.rm = TRUE)))
print (csv_data [, c ("NAME",
"subject", "rangeMarks")])
PROGRAM
2
data <- read.csv ("Y:\\R
PROGRAMMING\\pg2.csv")
numerical_cols <-
sapply (data, is. numeric)
categorical_cols <-
sapply (data, is. factor)
get_mode <-
function(v) {
uniqv <- unique(v)
uniqv [which.max (tabulate (match (v,
uniqv)))]
}
for (col in
names(data)[numerical_cols])
{
mean_val <- mean(data[[col]], na.rm =
TRUE)
median_val <- median(data[[col]], na.rm =
TRUE)
mode_val <- get_mode(data[[col]])
total_val <- sum(data[[col]], na.rm =
TRUE)
print (paste ("Statistics for",
col, ":"))
print (paste ("Mean:", mean_val))
print (paste ("Median:",
median_val))
print (paste ("Mode:", mode_val))
print (paste ("Total:", total_val))
hist (data[[col]], main = paste ("Histogram
of", col),
xlab = col, col = "lightblue",
border = "black")
}
for (col in
names(data)[numerical_cols])
{
barplot (data[[col]], main = paste ("Bar
Plot of", col),
xlab = col, col =
"lightblue", border = "black")
}
if (sum(numerical_cols)
> 1) {
combs <-
combn(names(data)[numerical_cols], 2, simplify = FALSE)
for (pair in combs) {
plot (data [[pair [1]]], data [[pair [2]]],
main = paste ("Scatter Plot of", pair [1], "vs", pair [2]),
xlab = pair [1], ylab = pair [2], col
= "blue", pch = 19)
}
}
PROGRAM
3
calculate <- function (a,
b, operator)
{
result <- switch (operator,
"+" = a + b, "-" = a - b,"*" = a * b,
"/" = if (b! = 0) a / b else "Division by zero is not
allowed","%%" = a %% b, "^" = a ^ b,"sqrt" =
sqrt(a), "sin" = sin(a), "cos" = cos(a),"tan" =
tan(a),"Invalid operator")
return(result)
}
operator <- readline (prompt
= "Enter the operator (+, -, *, /, %%, ^, sqrt, sin, cos, tan): ")
if (operator %in% c ("sqrt",
"sin", "cos", "tan")) {
a <- as. Numeric (readline (prompt =
"Enter the number: "))
b <- NA
} else {
a <- as. Numeric (readline (prompt =
"Enter the first number: "))
b <- as. Numeric (readline (prompt =
"Enter the second number: "))
}
result <- calculate (a,
b, operator)
cat ("Result:
", result, "\n")
PROGRAM
4
matrix1 <- matrix (1:9,
nrow = 3, byrow = TRUE)
matrix2 <- matrix (9:1,
nrow = 3, byrow = TRUE)
cat ("Matrix 1: \n")
print(matrix1)
cat ("\nMatrix 2: \n")
print(matrix2)
cat ("\nMatrix
Addition (Matrix 1 + Matrix 2): \n")
matrix_add <- matrix1
+ matrix2
print(matrix_add)
cat ("\nMatrix
Subtraction (Matrix 1 - Matrix 2): \n")
matrix_sub <- matrix1
- matrix2
print(matrix_sub)
cat ("\nMatrix
Element-wise Multiplication (Matrix 1 * Matrix 2): \n")
matrix_mult <- matrix1
* matrix2
print(matrix_mult)
cat ("\nMatrix
Multiplication (Matrix 1 %*% Matrix 2): \n")
matrix_mult_dot <-
matrix1 %*% t(matrix2)
print(matrix_mult_dot)
cat ("\nTranspose of
Matrix 1: \n")
matrix_transpose <-
t(matrix1)
print(matrix_transpose)
PROGRAM
5
csv_data <- read.csv ("Y:\\R
PROGRAMMING\\PGM5.csv")
cat ("Structure of
the DataFrame:\n")
print(str(csv_data))
cat ("\nSummary
Statistics:\n")
print(summary(csv_data))
filtered_data <-
csv_data [csv_data$Tamil > 50,]
cat ("\nFiltered
Data (Tamil > 50): \n")
print(filtered_data)
csv_data$Maths <-
csv_data$Maths + 10
cat ("\nData with
New Column 'Maths’: \n")
print(csv_data)
mean_Social <-
mean(csv_data$Social)
cat ("\nMean of
'Social’: \n")
print(mean_Social)
median_English <-
median(csv_data$English)
cat ("\nMedian of
'mark2’: \n")
print(median_English)
#mode <-
function(marks) {
# uniq <- unique(marks)
# uniq [which.max (tabulate (match (marks,
uniq)))]
#}
csv_data$total <- rowSums
(csv_data [, c ("Tamil", "English”, “Maths", "Science”,
“Social")])
csv_data$Average <-
csv_data$total/5
cat ("\nDataFrame
with New Columns:\n")
print(csv_data)
write.csv (csv_data,
"Y:\\pg5_updated.csv", row.names = FALSE)
cat ("Updated CSV
file saved to Y:\\pg5_updated.csv\n")
PROGRAM
6
player_scores <- matrix
(nrow = 5, ncol = 3)
rownames(player_scores)
<- paste ("Player", 1:5)
for (i in 1:5)
{
for (j in 1:3)
{
player_scores [i, j] <- as. numeric
(readline (prompt = paste ("Enter score for", rownames(player_scores)
[i], "in match", j, ": ")))
}
}
print ("Player
Scores Matrix:")
print(player_scores)
compare_performance <-
function(scores) {
improvement_results <- matrix (nrow = 5,
ncol = 2)
colnames(improvement_results) <- c ("Player",
"Improved Performance")
improvement_results[, 1] <-
rownames(scores)
for (i in 1: nrow(scores)) {
improved_count <- 0
for (j in 1:(ncol(scores) - 1)) {
if (scores [i, j + 1] > scores [i, j])
{
improved_count <- improved_count + 1
}
}
if (improved_count > 0) {
improvement_results [i, 2] <- paste (improved_count,
"improvement(s)")
} else {
improvement_results [i, 2] <- "No
Improvement"
}
}
return(improvement_results)
}
improvement_results <-
compare_performance(player_scores)
print ("Player
Performance Improvement Results:")
print(improvement_results)
PROGRAM
7
calculate_weekly_pay
<- function (hourly_wage, regular_hours, overtime_hours)
{
regular_pay <- hourly_wage * regular_hours
overtime_pay <- hourly_wage * 1.5 *
overtime_hours
total_pay <- regular_pay + overtime_pay
return(total_pay)
}
main <- function ()
{
num_employees <- 05
employee_data <- list ()
for (i in 1:num_employees) {
cat (paste ("Enter details for
Employee", i, “: \n"))
hourly_wage <- as. numeric (readline (prompt
= "Hourly wage: "))
regular_hours <- as. numeric (readline (prompt
= "Regular hours worked: "))
overtime_hours <- as. numeric (readline
(prompt = "Overtime hours worked: "))
weekly_pay <- calculate_weekly_pay (hourly_wage,
regular_hours, overtime_hours)
employee_data[[i]] <- list (
hourly_wage = hourly_wage,
regular_hours = regular_hours,
overtime_hours = overtime_hours,
weekly_pay = weekly_pay)
}
cat ("\nEmployee Details and Weekly Pay:\n")
for (i in 1:num_employees)
{
cat (paste ("Employee", i, “: \n"))
cat (paste ("Hourly Wage: $",
format(employee_data[[i]] $hourly_wage, nsmall = 2), "\n", sep =
""))
cat (paste ("Regular Hours: ",
employee_data[[i]] $regular_hours, "\n", sep = ""))
cat (paste ("Overtime Hours: ",
employee_data[[i]] $overtime_hours, "\n", sep = ""))
cat (paste ("Weekly Pay: $",
format(employee_data[[i]] $weekly_pay, nsmall = 2), "\n", sep =
""))
cat("\n")
}
total_payroll <- sum (sapply (employee_data,
function(emp) emp$weekly_pay))
cat (paste ("Total Payroll for",
num_employees, "employees: $", format (total_payroll, nsmall = 2),
"\n", sep = ""))
}
main ()
PROGRAM
8
fibonacci <-
function(n) {
fib_series <- numeric(n)
fib_series [1] <- 0
if (n > 1) {
fib_series [2] <- 1
for (i in 3: n) {
fib_series[i] <- fib_series[i-1] +
fib_series[i-2]
}
}
return(fib_series)
}
factorial <-
function(n) {
if (n == 0) {
return (1)
} else {
return (n * factorial (n - 1))
}
}
gcd <- function (a, b)
{
if (b == 0) {
return(a)
} else {
return (gcd (b, a %% b))
}
}
main <- function () {
repeat {
cat ("\nSelect an option:\n")
cat ("1: Calculate Fibonacci
series\n")
cat ("2: Calculate factorial of a
number\n")
cat ("3: Calculate GCD of two
numbers\n")
cat ("4: Exit\n")
choice <- as. integer (readline (prompt="Enter
your choice: "))
if (choice == 1) {
n <- as. integer (readline (prompt="Enter
the number of terms for Fibonacci series: "))
if (n > 0) {
fib_series <- fibonacci(n)
cat ("Fibonacci series:",
fib_series, "\n")
} else {
cat ("Please enter a positive
integer.\n")
}
}
else if (choice == 2) {
num <- as. integer (readline (prompt="Enter
a number to calculate its factorial: "))
if (num >= 0) {
fact <- factorial(num)
cat ("Factorial of", num,
"is", fact, "\n")
}
else
{
cat ("Please enter a non-negative
integer.\n")
}
}
else if (choice == 3) {
a <- as. integer (readline (prompt="Enter
the first number for GCD calculation: "))
b <- as. integer (readline (prompt="Enter
the second number for GCD calculation: "))
gcd_result <- gcd (a, b)
cat ("GCD of", a,
"and", b, "is", gcd_result, "\n")
} else if (choice == 4) {
cat ("Exiting the program.\n")
break
} else {
cat ("Invalid choice. Please try
again.\n")
}
}
}
main ()
PROGRAM 9
A)
data <- data. frame (Student = c ("Student1",
"Student2", "Student3", "Student4"), Math = c (85,
78, 92, 88), Science = c (90, 85, 95, 89), English = c (88, 82, 90, 85), History
= c (76, 80, 85, 83))
par (mar
= c (5, 4, 4, 8) + 0.1)
data_t
<- t(data[,-1])
colnames(data_t) <- data$Student
barplot(data_t, beside = FALSE, col = c("sky blue", "light green",
"orange", "pink"), legend = rownames(data_t), args.legend =
list(x = "topright", inset = c(-0.2, 0)))
title(main = "Marks Obtained by Students in Different Subjects")
title(xlab = "Students")
title(ylab = "Marks")
total_marks <- colSums(data[,-1])
subject_names <- names(total_marks)
par(mar = c(5, 4, 4, 8) + 0.1) # Adjust margins to fit the legend
pie(total_marks, labels = subject_names, col = c("skyblue", "light
green", "orange", "pink"), main = "Total Marks
Obtained in Each Subject")
B)
data <- data.frame( Day = c("Day1", "Day2",
"Day3", "Day4", "Day5"), Temperature = c(30, 32,
28, 31, 29 ), Rainfall = c(5, 10, 0, 15, 7))
par(mfrow = c(2, 1))
barplot(data$Temperature, names.arg = data$Day, col = "skyblue", main
= "Temperature for Five Consecutive Days", xlab = "Days",
ylab = "Temperature (°C)")
barplot(data$Rainfall, names.arg = data$Day, col = "light green", main
= "Rainfall for Five Consecutive Days", xlab = "Days", ylab
= "Rainfall (mm)")
par(mfrow = c(1, 1))
C)
set.seed(123)
data
<- data.frame(
Gender = sample(c("Male", "Female"), 100, replace =
TRUE),
Height = rnorm(100, mean = 170, sd = 10))
mean_height <- mean(data$Height)
par(mar = c(5, 4, 4, 2) + 0.1)
plot(density(data$Height), main = "Density Plot of Heights", xlab =
"Height (cm)", ylab = "Density", col = "blue")
abline(v = mean_height, col = "red", lwd = 2, lty = 2) # Red
dashed line for mean height
legend("topright", legend = paste("Mean Height =",
round(mean_height, 2)), col = "red", lwd = 2, lty = 2)
PROGRAM
10
data(mtcars)
model <- lm(mpg ~ wt, data = mtcars)
summary(model)
predicted_values <- predict(model, mtcars)
actual_values <- mtcars$mpg
residuals <- actual_values - predicted_values
mse <- mean(residuals^2)
print(paste("Mean Squared Error
(MSE):", round(mse, 2)))
rmse <- sqrt(mse)
print(paste("Root Mean Squared Error
(RMSE):", round(rmse, 2)))
mae <- mean(abs(residuals))
print(paste("Mean Absolute Error
(MAE):", round(mae, 2)))
r_squared <- summary(model)$r.squared
print(paste("R-squared:",
round(r_squared, 2)))
adj_r_squared <- summary(model)$adj.r.squared
print(paste("Adjusted R-squared:",
round(adj_r_squared, 2)))
plot(mtcars$wt, mtcars$mpg, main = "Linear
Regression of mpg on wt", xlab = "Weight (1000 lbs)", ylab =
"Miles Per Gallon (mpg)")
abline(model, col = "red")
PROGRAM 9
# Function to perform
Part A
part_a <- function() {
data <- data.frame(
Student = c("Student1",
"Student2", "Student3", "Student4"),
Math = c(85, 78, 92, 88),
Science = c(90, 85, 95, 89),
English = c(88, 82, 90, 85),
History = c(76, 80, 85, 83)
)
par(mar = c(5, 4, 4, 8) + 0.1)
data_t <- t(data[,-1])
colnames(data_t) <- data$Student
barplot(data_t, beside = FALSE, col =
c("sky blue", "light green", "orange",
"pink"), legend = rownames(data_t), args.legend = list(x =
"topright", inset = c(-0.2, 0)))
title(main = "Marks Obtained by Students
in Different Subjects")
title(xlab = "Students")
title(ylab = "Marks")
total_marks <- colSums(data[,-1])
pie(total_marks, labels = names(total_marks),
col = c("skyblue", "light green", "orange",
"pink"), main = "Total Marks Obtained in Each Subject")
# Print a message to indicate that the plot
has been generated
cat("Plot generated for Part A.\n")
}
# Function to perform
Part B
part_b <- function() {
data <- data.frame(
Day = c("Day1", "Day2",
"Day3", "Day4", "Day5"),
Temperature = c(30, 32, 28, 31, 29),
Rainfall = c(5, 10, 0, 15, 7)
)
par(mfrow = c(2, 1))
barplot(data$Temperature, names.arg =
data$Day, col = "skyblue", main = "Temperature for Five
Consecutive Days", xlab = "Days", ylab = "Temperature
(°C)")
barplot(data$Rainfall, names.arg = data$Day,
col = "light green", main = "Rainfall for Five Consecutive
Days", xlab = "Days", ylab = "Rainfall (mm)")
par(mfrow = c(1, 1))
# Print a message to indicate that the plot
has been generated
cat("Plot generated for Part B.\n")
}
# Function to perform
Part C
part_c <- function() {
set.seed(123)
data <- data.frame(
Gender = sample(c("Male",
"Female"), 100, replace = TRUE),
Height = rnorm(100, mean = 170, sd = 10)
)
mean_height <- mean(data$Height)
par(mar = c(5, 4, 4, 2) + 0.1)
plot(density(data$Height), main =
"Density Plot of Heights", xlab = "Height (cm)", ylab =
"Density", col = "blue")
abline(v = mean_height, col =
"red", lwd = 2, lty = 2)
legend("topright", legend =
paste("Mean Height =", round(mean_height, 2)), col = "red",
lwd = 2, lty = 2)
# Print a message to indicate that the plot
has been generated
cat("Plot generated for Part C.\n")
}
# User choice
choice <-
readline(prompt = "Enter your choice (A, B, or C): ")
if (choice ==
"A") {
part_a()
} else if (choice ==
"B") {
part_b()
} else if (choice ==
"C") {
part_c()
} else {
cat("Invalid choice. Please enter A, B,
or C.\n")
}