# set working directory
setwd("D:/Dr.Ashok")
#import data
dat = read.csv("reg_data.csv")
dat
##     Laser  Skin  Bone
## 1   0.418 4.636 0.486
## 2   0.693 1.990 0.124
## 3   0.783 1.590 1.250
## 4   0.757 1.763 0.663
## 5   0.519 1.065 1.614
## 6   0.412 3.676 1.237
## 7   0.620 1.373 1.210
## 8   0.390 4.636 1.034
## 9   0.343 1.294 0.998
## 10  0.466 2.120 0.511
## 11  0.401 1.210 0.385
## 12  0.571 1.540 1.068
## 13  0.357 1.096 0.702
## 14  0.514 2.333 1.544
## 15  0.545 1.640 1.366
## 16  0.610 1.550 1.242
## 17  0.406 2.255 1.485
## 18  0.546 1.370 0.853
## 19  0.689 1.655 1.090
## 20  0.380 1.311 1.235
## 21  0.555 1.235 1.351
## 22  0.523 1.504 1.136
## 23  0.551 0.873    NA
## 24  0.656 0.986    NA
## 25  0.723 1.361    NA
## 26  0.477 1.984    NA
## 27  0.658 1.255    NA
## 28  0.344 0.896    NA
## 29  0.412 0.735    NA
## 30  0.475 1.536    NA
## 31  0.609    NA    NA
## 32  0.604    NA    NA
## 33  0.391    NA    NA
## 34  0.564    NA    NA
## 35  0.679    NA    NA
## 36  0.504    NA    NA
## 37  0.718    NA    NA
## 38  0.622    NA    NA
## 39  0.430    NA    NA
## 40  0.474    NA    NA
## 41  0.340    NA    NA
## 42  0.974    NA    NA
## 43  0.632    NA    NA
## 44  0.667    NA    NA
## 45  0.439    NA    NA
## 46  0.466    NA    NA
## 47  0.438    NA    NA
## 48  0.861    NA    NA
## 49  0.528    NA    NA
## 50  0.519    NA    NA
## 51  0.388    NA    NA
## 52  0.537    NA    NA
## 53  0.412    NA    NA
## 54  0.397    NA    NA
## 55  0.402    NA    NA
## 56  0.507    NA    NA
## 57  0.425    NA    NA
## 58  0.431    NA    NA
## 59  0.407    NA    NA
## 60  0.582    NA    NA
## 61  0.330    NA    NA
## 62  0.417    NA    NA
## 63  0.468    NA    NA
## 64  0.392    NA    NA
## 65  0.366    NA    NA
## 66  0.377    NA    NA
## 67  0.456    NA    NA
## 68  0.392    NA    NA
## 69  0.528    NA    NA
## 70  0.403    NA    NA
## 71  0.620    NA    NA
## 72  0.418    NA    NA
## 73  0.700    NA    NA
## 74  0.431    NA    NA
## 75  0.374    NA    NA
## 76  0.386    NA    NA
## 77  0.499    NA    NA
## 78  0.524    NA    NA
## 79  0.835    NA    NA
## 80  0.583    NA    NA
## 81  0.419    NA    NA
## 82  0.454    NA    NA
## 83  0.517    NA    NA
## 84  0.537    NA    NA
## 85  0.566    NA    NA
## 86  0.482    NA    NA
## 87  0.781    NA    NA
## 88  0.529    NA    NA
## 89  1.023    NA    NA
## 90  0.613    NA    NA
## 91  0.401    NA    NA
## 92  0.522    NA    NA
## 93  0.384    NA    NA
## 94  0.436    NA    NA
## 95  0.451    NA    NA
## 96  0.707    NA    NA
## 97  0.384    NA    NA
## 98  0.402    NA    NA
## 99  0.661    NA    NA
## 100 0.416    NA    NA
## 101 0.384    NA    NA
## 102 0.548    NA    NA
## 103 0.419    NA    NA
## 104 0.568    NA    NA
## 105 0.358    NA    NA
## 106 0.467    NA    NA
## 107 0.496    NA    NA
## 108 0.441    NA    NA
## 109 0.585    NA    NA
## 110 0.620    NA    NA
## 111 0.455    NA    NA
## 112 0.700    NA    NA
## 113 0.351    NA    NA
## 114 0.550    NA    NA
## 115 0.767    NA    NA
## 116 0.605    NA    NA
## 117 0.674    NA    NA
## 118 0.359    NA    NA
## 119 0.604    NA    NA
## 120 0.527    NA    NA
## 121 0.488    NA    NA
## 122 0.581    NA    NA
## 123 0.681    NA    NA
## 124 0.500    NA    NA
## 125 0.788    NA    NA
## 126 0.532    NA    NA
## 127 0.598    NA    NA
## 128 0.428    NA    NA
## 129 0.639    NA    NA
## 130 0.414    NA    NA
## 131 0.313    NA    NA
## 132 0.466    NA    NA
head(dat)
##   Laser  Skin  Bone
## 1 0.418 4.636 0.486
## 2 0.693 1.990 0.124
## 3 0.783 1.590 1.250
## 4 0.757 1.763 0.663
## 5 0.519 1.065 1.614
## 6 0.412 3.676 1.237
dim(dat)
## [1] 132   3
# for a simple boxplot we can do the following. 

library(rafalib)
mypar(1,2)

meanL = mean(dat[,"Laser"], na.rm = TRUE)
meanS = mean(dat[,"Skin"], na.rm = TRUE)
meanB = mean(dat[,"Bone"], na.rm = TRUE)

boxplot(dat)
means = c(meanL,meanS,meanB)
boxplot(dat, col = "lightgrey", names = c("Laser", "Skin", "Bone"), 
        ylab="Reg,Accuracy", xlab = "Procedure", main="Distribution")
points(means, col="blue", pch=16)


#ggplot functions and summarySE Rmisc arguement for better layout

library(ggplot2)
## Warning: package 'ggplot2' was built under R version 3.3.2

library(plyr)
## Warning: package 'plyr' was built under R version 3.3.1
library(Rmisc)
## Warning: package 'Rmisc' was built under R version 3.3.2
## Loading required package: lattice
## Warning: package 'lattice' was built under R version 3.3.3
#split the data in to components
Laser = dat[,1]
Skin = dat[,2]
Bone = dat[,3]

# to make a data matrix, rows names are made
tt = rep((c("1","2","3")), times = c(132,30,22))
     
# values of the row is laid out from the original data.     
val = c(Laser,Skin,Bone)
val = na.omit(val) 
#in order to omit "NA"

df = data.frame(tt, val)
#data frame is made. 


dfc = summarySE(df, measurevar = "val", groupvars = "tt")
#statistical summary in one go. 


# in order to overlay jitterplot and boxplot in ggplot2 argument
g <- ggplot(df, aes(x = tt, y = val)) +
  geom_boxplot(aes(tt,val), na.rm = TRUE, color = "lightgrey", width = 0.5) +
  geom_jitter(aes(tt, val), data = df, colour = I("blue"), 
              position = position_jitter(width = 0.05), size = 2, pch = 16) +
  scale_y_discrete(name = "Registration Accuracy (mm)" , limits=c("1","2","3","4")) +
  scale_x_discrete(name = "", labels = c("Laser", "Skin", "Bone") ) +
  geom_crossbar(data=dfc, aes(x=tt, ymin=val, ymax=val,y=val,group=tt), width = 0.20)
g