**Krishna's R Blog**, and kindly contributed to R-bloggers)

Introduction

R language can also be used for commercial applications. In this article, I will describe how R language can be used for a commercial application like Payroll. In this exercise let us assume that in a typical Indian Company, every employee gets two types of allowances called Dearness Allowance(DA) and House Rent Allowance(HRA) besides the basic Salary. Let us assume that the DA and HRA are 22% and 30% of Basic Salary respectively. In addition, the company also deducts IncomeTax, which is 10% of Basic Salary. The Gross Salary is obtained by adding the Basic Salary, DA and HRA. Net Salary is obtained by subtracting the IncomeTax amount from the Gross Salary. It is required to do all the calculations for each employee and generate the Payslips for each employee in a specified format mentioning all these details.

Sample Data

Some sample data of four employees is shown below :

Calculations and Printing of Payslips

The following User Defined Function payroll() will perform all the calculations and returns the results as list of class “payroll” :

payroll<-function(df) {

lst<-list()

lst$eno<-df$eno

lst$name<-df$name

lst$dept<-df$dept

lst$salary<-df$salary

lst$da<-df$salary*0.22

lst$hra<-df$salary*0.3

lst$gpay<-df$salary+lst$da+lst$hra

lst$itax<-df$salary*0.1

lst$npay<-lst$gpay-lst$itax

class(lst)<-“payroll”

lst

}

In order to print the payslips the print function of payroll is defined as follows :

print.payroll<-function(x) {

cat(“\n”)

for(i in 1:n) {

cat(“Eno : “,x[[1]][i],”\n”)

cat(“Name : “,x[[2]][i],”\n”)

cat(“Dept : “,x[[3]][i],”\n”)

cat(“Salary : “,x[[4]][i],”\n”)

cat(“DA : “,x[[5]][i],”\n”)

cat(“HRA : “,x[[6]][i],”\n”)

cat(“Gross Pay : “,x[[7]][i],”\n”)

cat(“ITax : “,x[[8]][i],”\n”)

cat(“Net Salary : “,x[[9]][i],”\n\n”)

for(i in 1:40) {

cat(“=”)

}

cat(“\n”)

}

}

The following R code will read the data from the excel data file payroll.csv, do all the calculations and prints the payslips for all the employees.

df<-read.csv(“g:/RExercises/OOP/payroll.csv”,header=TRUE,sep=”,”,

stringsAsFactors=FALSE)

n<-nrow(df)

res<-payroll(df)

res

Payslips printing

The payslips generated by the above code is given below :

Conclusions

R language program for developing a commercial application like Payroll is described in this article.

**leave a comment**for the author, please follow the link and comment on their blog:

**Krishna's R Blog**.

R-bloggers.com offers

**daily e-mail updates**about R news and tutorials on topics such as: Data science, Big Data, R jobs, visualization (ggplot2, Boxplots, maps, animation), programming (RStudio, Sweave, LaTeX, SQL, Eclipse, git, hadoop, Web Scraping) statistics (regression, PCA, time series, trading) and more...