Sample Programs Using Data Frames in R

 

Sample Programs Using Data Frames in R

The following programs illustrate different applications and operations on data frames suitable for undergraduate laboratories.


1. Student Result Analysis

Aim

Create a data frame containing details of students and perform basic analysis.

Program

students <- data.frame(
Name = c("John", "Mary", "Alex", "David", "Sara"),
Marks = c(85, 92, 45, 78, 95)
)

print(students)

# Passed students
passed <- students[students$Marks >= 50, ]

# Average marks
avg <- mean(students$Marks)

# Topper
topper <- students[students$Marks == max(students$Marks), ]

cat("Average Marks =", avg, "\n")

cat("Topper:\n")
print(topper)

cat("Passed Students:\n")
print(passed)

Concepts Demonstrated

  • Data frame creation
  • Logical indexing
  • Statistical functions

2. Employee Salary Management

Aim

Calculate annual salaries and identify the highest-paid employee.

Program

employees <- data.frame(
Name = c("John", "Mary", "Alex", "David"),
MonthlySalary = c(40000, 55000, 45000, 60000)
)

employees$AnnualSalary <- employees$MonthlySalary * 12

print(employees)

highest <- employees[employees$AnnualSalary ==
max(employees$AnnualSalary), ]

cat("Highest Paid Employee:\n")
print(highest)

Concepts Demonstrated

  • Adding columns
  • Arithmetic operations
  • Filtering rows

3. Cricket Team Statistics

Aim

Analyze runs scored by players.

Program

team <- data.frame(
Player = c("Rohit", "Gill", "Virat", "Rahul", "Hardik"),
Runs = c(75, 42, 110, 65, 35)
)

print(team)

# Average score
avg_runs <- mean(team$Runs)

# Players scoring more than 50
good_players <- team[team$Runs > 50, ]

# Highest scorer
highest <- team[team$Runs == max(team$Runs), ]

cat("Average Runs =", avg_runs, "\n")

print(good_players)

print(highest)

Concepts Demonstrated

  • Selection using conditions
  • Statistical analysis
  • Maximum values

4. Library Management System

Aim

Maintain details of books and display available books.

Program

books <- data.frame(
Title = c("DBMS", "Python", "Machine Learning", "OS"),
Price = c(450, 500, 700, 550),
Available = c(TRUE, FALSE, TRUE, TRUE)
)

print(books)

# Available books
available_books <- books[books$Available == TRUE, ]

# Most expensive book
costly_book <- books[books$Price == max(books$Price), ]

cat("Available Books:\n")
print(available_books)

cat("Most Expensive Book:\n")
print(costly_book)

Concepts Demonstrated

  • Boolean columns
  • Logical indexing
  • Maximum value

5. Sales Data Analysis

Aim

Analyze monthly sales of products.

Program

sales <- data.frame(
Product = c("Laptop", "Mobile", "TV", "Printer", "Tablet"),
Sales = c(120000, 85000, 150000, 45000, 90000)
)

print(sales)

# Total sales
total_sales <- sum(sales$Sales)

# Average sales
avg_sales <- mean(sales$Sales)

# Products with sales above average
high_sales <- sales[sales$Sales > avg_sales, ]

# Sort in descending order
sorted_sales <- sales[order(sales$Sales,
decreasing = TRUE), ]

cat("Total Sales =", total_sales, "\n")
cat("Average Sales =", avg_sales, "\n")

cat("Products Above Average Sales:\n")
print(high_sales)

cat("Products Sorted by Sales:\n")
print(sorted_sales)

Concepts Demonstrated

  • sum(), mean()
  • Conditional filtering
  • Sorting using order()

Sample Program: Using Factors in a Data Frame

Aim

Create a data frame containing student details and use factors to represent categorical variables such as Gender and Grade. Perform some basic analysis on the data.


Program

# Create a data frame
students <- data.frame(
RollNo = c(101, 102, 103, 104, 105),
Name = c("John", "Mary", "Alex", "David", "Sara"),
Gender = factor(c("Male", "Female", "Male", "Male", "Female")),
Marks = c(85, 92, 78, 65, 95),
Grade = factor(c("A", "A", "B", "C", "A"),
levels = c("C", "B", "A"),
ordered = TRUE)
)

# Display the data frame
print(students)

# Structure of the data frame
str(students)

# Frequency of Gender
cat("Gender Distribution:\n")
print(table(students$Gender))

# Frequency of Grades
cat("Grade Distribution:\n")
print(table(students$Grade))

# Students having Grade A
cat("Students with Grade A:\n")
print(students[students$Grade == "A", ])

# Average marks of male students
male_avg <- mean(students$Marks[students$Gender == "Male"])

cat("Average Marks of Male Students =", male_avg, "\n")

# Students with grade greater than B
cat("Students with Grade > B:\n")
print(students[students$Grade > "B", ])

Output

  RollNo  Name Gender Marks Grade
1 101 John Male 85 A
2 102 Mary Female 92 A
3 103 Alex Male 78 B
4 104 David Male 65 C
5 105 Sara Female 95 A

Gender Distribution

Female Male
2 3

Grade Distribution

C B A
1 1 3

Students with Grade A

  RollNo Name Gender Marks Grade
1 101 John Male 85 A
2 102 Mary Female 92 A
5 105 Sara Female 95 A

Average Marks of Male Students

Average Marks of Male Students = 76

Students with Grade > B

  RollNo Name Gender Marks Grade
1 101 John Male 85 A
2 102 Mary Female 92 A
5 105 Sara Female 95 A

Comments

Popular posts from this blog

Statistical Methods Lab ( R Language) PCCBL308 Semester 3 KTU BTech CB and CU 2024 Scheme - Dr Binu V P

Programs in R - using control statements - Assignment 2

Basic R Programs to Try - Assignment 1