# Import library

library(tidyverse)
## Warning: package 'tidyverse' was built under R version 3.3.3
## Loading tidyverse: ggplot2
## Loading tidyverse: tibble
## Loading tidyverse: tidyr
## Loading tidyverse: readr
## Loading tidyverse: purrr
## Loading tidyverse: dplyr
## Warning: package 'ggplot2' was built under R version 3.3.3
## Warning: package 'tibble' was built under R version 3.3.3
## Warning: package 'tidyr' was built under R version 3.3.3
## Warning: package 'readr' was built under R version 3.3.3
## Warning: package 'purrr' was built under R version 3.3.3
## Warning: package 'dplyr' was built under R version 3.3.3
## Conflicts with tidy packages ----------------------------------------------
## filter(): dplyr, stats
## lag():    dplyr, stats
# Working with diamonds dataset in ggplot2 package
## Check all available dataset in a particular package

data(package="ggplot2")

p<-ggplot(data=diamonds,aes(x=diamonds$depth,fill=cut)) + geom_density(alpha=0.2) + scale_fill_discrete(name="Cut Type") + theme_classic() + xlab("Depth") + ggtitle("Density Plot")

# one can add facet

p + facet_wrap(~cut, ncol=1,scales="free") 

# This small practice will work with iris data from caret package
library(caret)
## Warning: package 'caret' was built under R version 3.3.3
## Loading required package: lattice
## Warning: package 'lattice' was built under R version 3.3.3
## 
## Attaching package: 'caret'
## The following object is masked from 'package:purrr':
## 
##     lift
dataset<-iris

# gather function is to convert wide data to long data

dataset_gather<-dataset %>% tidyr::gather(key=Type,value = Values,1:4)

head(dataset_gather)
##   Species         Type Values
## 1  setosa Sepal.Length    5.1
## 2  setosa Sepal.Length    4.9
## 3  setosa Sepal.Length    4.7
## 4  setosa Sepal.Length    4.6
## 5  setosa Sepal.Length    5.0
## 6  setosa Sepal.Length    5.4
# spead is the opposite of gather

# dataset_spead<- dataset_gather%>%tidyr::spread(key = Type,value = Values)

## this funciton throws an error like this Error: Duplicate identifiers for rows