R Markdown

This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com.

When you click the Knit button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:

summary(cars)
##      speed           dist       
##  Min.   : 4.0   Min.   :  2.00  
##  1st Qu.:12.0   1st Qu.: 26.00  
##  Median :15.0   Median : 36.00  
##  Mean   :15.4   Mean   : 42.98  
##  3rd Qu.:19.0   3rd Qu.: 56.00  
##  Max.   :25.0   Max.   :120.00

Including Plots

You can also embed plots, for example:

Note that the echo = FALSE parameter was added to the code chunk to prevent printing of the R code that generated the plot.

library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ ggplot2   3.4.4     ✔ tibble    3.2.1
## ✔ lubridate 1.9.3     ✔ tidyr     1.3.1
## ✔ purrr     1.0.2     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(ggplot2)
library(dplyr)
data(mpg)
head(mpg)
## # A tibble: 6 × 11
##   manufacturer model displ  year   cyl trans      drv     cty   hwy fl    class 
##   <chr>        <chr> <dbl> <int> <int> <chr>      <chr> <int> <int> <chr> <chr> 
## 1 audi         a4      1.8  1999     4 auto(l5)   f        18    29 p     compa…
## 2 audi         a4      1.8  1999     4 manual(m5) f        21    29 p     compa…
## 3 audi         a4      2    2008     4 manual(m6) f        20    31 p     compa…
## 4 audi         a4      2    2008     4 auto(av)   f        21    30 p     compa…
## 5 audi         a4      2.8  1999     6 auto(l5)   f        16    26 p     compa…
## 6 audi         a4      2.8  1999     6 manual(m5) f        18    26 p     compa…
ggplot(data=mpg)+geom_point(mapping=aes(x=displ,y=hwy))

ggplot(data=mpg)+geom_point(mapping=aes(x=displ,y=cty))

ggplot(data=mpg)+geom_point(mapping=aes(x=displ,y=cyl))

ggplot(data=mpg)+geom_smooth(mapping=aes(x=displ,y=cyl))
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'

ggplot(data=mpg)+geom_point(mapping=aes(x=displ,y=hwy))

ggplot(data=mpg)+geom_point(mapping=aes(x=displ,y=cty))

ggplot(data=mpg)+geom_point(mapping=aes(x=displ,y=cyl))

ggplot(data=mpg)+geom_smooth(mapping=aes(x=displ,y=cyl))
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'

#### Geo_Smooth################
ggplot(data=mpg)+geom_smooth(mapping=aes(x=displ,y=cyl))
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'

ggplot(data=mpg)+geom_smooth(mapping=aes(x=displ,y=hwy, linetype=drv))
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'

ggplot(data=mpg)+geom_smooth(mapping=aes(x=displ,y=hwy, group=drv))
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'

ggplot(data=mpg)+geom_smooth(mapping=aes(x=displ,y=hwy)) + geom_smooth(mapping=aes(x=displ, y=hwy))
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'

#same as

ggplot(data=mpg, mapping=aes(x=displ,y=hwy)) + geom_point(mapping=aes(color=class)) + geom_smooth()
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'

ggplot(data=mpg, mapping=aes(x=displ,y=hwy)) + geom_point(mapping=aes(color=class)) + geom_smooth(data=filter(mpg, class=="subcompact"), se=FALSE) 
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'

##ggplot(data=mpg, mapping=aes(x=displ,y=hwy)) + geom_point(mapping=aes(color=class)) + geom_smooth(data=dplyr::filter(mpg, class=="subcompact"), se=FALSE) 

ggplot(data=mpg, mapping=aes(x=displ,y=hwy)) + geom_point(mapping=aes(color=class)) + geom_smooth(data=filter(mpg, class=="minivan"), se=FALSE) 
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
## Warning in simpleLoess(y, x, w, span, degree = degree, parametric = parametric,
## : pseudoinverse used at 4.008
## Warning in simpleLoess(y, x, w, span, degree = degree, parametric = parametric,
## : neighborhood radius 0.708
## Warning in simpleLoess(y, x, w, span, degree = degree, parametric = parametric,
## : reciprocal condition number 0
## Warning in simpleLoess(y, x, w, span, degree = degree, parametric = parametric,
## : There are other near singularities as well. 0.25

Tuesday 13th February Class

?diamonds
## starting httpd help server ... done
head(diamonds)
## # A tibble: 6 × 10
##   carat cut       color clarity depth table price     x     y     z
##   <dbl> <ord>     <ord> <ord>   <dbl> <dbl> <int> <dbl> <dbl> <dbl>
## 1  0.23 Ideal     E     SI2      61.5    55   326  3.95  3.98  2.43
## 2  0.21 Premium   E     SI1      59.8    61   326  3.89  3.84  2.31
## 3  0.23 Good      E     VS1      56.9    65   327  4.05  4.07  2.31
## 4  0.29 Premium   I     VS2      62.4    58   334  4.2   4.23  2.63
## 5  0.31 Good      J     SI2      63.3    58   335  4.34  4.35  2.75
## 6  0.24 Very Good J     VVS2     62.8    57   336  3.94  3.96  2.48
data(diamonds)
summary(diamonds)
##      carat               cut        color        clarity          depth      
##  Min.   :0.2000   Fair     : 1610   D: 6775   SI1    :13065   Min.   :43.00  
##  1st Qu.:0.4000   Good     : 4906   E: 9797   VS2    :12258   1st Qu.:61.00  
##  Median :0.7000   Very Good:12082   F: 9542   SI2    : 9194   Median :61.80  
##  Mean   :0.7979   Premium  :13791   G:11292   VS1    : 8171   Mean   :61.75  
##  3rd Qu.:1.0400   Ideal    :21551   H: 8304   VVS2   : 5066   3rd Qu.:62.50  
##  Max.   :5.0100                     I: 5422   VVS1   : 3655   Max.   :79.00  
##                                     J: 2808   (Other): 2531                  
##      table           price             x                y         
##  Min.   :43.00   Min.   :  326   Min.   : 0.000   Min.   : 0.000  
##  1st Qu.:56.00   1st Qu.:  950   1st Qu.: 4.710   1st Qu.: 4.720  
##  Median :57.00   Median : 2401   Median : 5.700   Median : 5.710  
##  Mean   :57.46   Mean   : 3933   Mean   : 5.731   Mean   : 5.735  
##  3rd Qu.:59.00   3rd Qu.: 5324   3rd Qu.: 6.540   3rd Qu.: 6.540  
##  Max.   :95.00   Max.   :18823   Max.   :10.740   Max.   :58.900  
##                                                                   
##        z         
##  Min.   : 0.000  
##  1st Qu.: 2.910  
##  Median : 3.530  
##  Mean   : 3.539  
##  3rd Qu.: 4.040  
##  Max.   :31.800  
## 
summary(diamonds$cut)
##      Fair      Good Very Good   Premium     Ideal 
##      1610      4906     12082     13791     21551
summary(diamonds$carat)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.2000  0.4000  0.7000  0.7979  1.0400  5.0100
view(diamonds)
val <- c(46,34,87,22,91)
mean(val)
## [1] 56
mean(diamonds$price)
## [1] 3932.8
summary(diamonds$price)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##     326     950    2401    3933    5324   18823
##x=carrat vs y=price
ggplot(data=diamonds)+geom_point(mapping=aes(x=carat,y=price))

ggplot(data=diamonds, mapping=aes(x=carat,y=price)) + geom_point(mapping = aes(color=cut)) 

hist(diamonds$carat, main="Histogram of Diamond Carat Weight", xlab = "Carat")

hist(diamonds$price, main="Histogram of Diamond Price", xlab = "Price")

sd(diamonds$carat)
## [1] 0.4740112
sd(diamonds$price)
## [1] 3989.44
var(diamonds$carat)
## [1] 0.2246867
var(diamonds$price)
## [1] 15915629
ggplot(data=diamonds) + stat_count(mapping = aes(x=cut))

##Introduce proportion to make all sum to 1

ggplot(data=diamonds) + stat_count(mapping = aes(x=cut, y=..prop.., group=0.1))
## Warning: The dot-dot notation (`..prop..`) was deprecated in ggplot2 3.4.0.
## ℹ Please use `after_stat(prop)` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.

ggplot(data=diamonds) + stat_summary(mapping = aes(x=cut, y=depth),
                                     fun.min=min,
                                     fun.max=max,
                                     fun=median
                                     )

# Colour border alone

ggplot(data=diamonds) + stat_count(mapping = aes(x=cut, color=cut))

ggplot(data=diamonds) + geom_bar(mapping = aes(x=cut, color=cut))

# Color all fill
ggplot(data=diamonds) + stat_count(mapping = aes(x=cut, fill=cut))

ggplot(data=diamonds) + geom_bar(mapping = aes(x=cut, fill=cut))

ggplot(data=diamonds) + stat_count(mapping = aes(x=cut, fill=clarity))

ggplot(data=diamonds) + geom_bar(mapping = aes(x=cut, fill=clarity))

ggplot(data=diamonds) + geom_bar(mapping = aes(x=cut, fill=color))

ggplot(data=diamonds) + geom_bar(mapping = aes(x=cut, fill=clarity), position = "dodge")

ggplot(data=diamonds) + geom_bar(mapping = aes(x=cut, fill=color), position = "dodge")

###Using maps
#nz <- map_data("nz")
#ng <- map_data("ng")
#ggplot(nz, aes(long, lat, group=group)) + geom_polygon(fill="white", color="black")
#install.packages('naijR')
#?map_data
library(naijR)
map_ng()

map_ng(lgas())

map_ng(states(gpz = "sw"), show.text = TRUE, col = 4)

kk <- "Kebbi"
##map_ng(kk, col = 6, title = paste(kk, "State"))
map_ng("Lagos", col = 6, title = paste(kk, "State"))

ng <- map_ng()

#ng <- map_data("Nigeria")

#ggplot(ng, aes(long, lat, group=group)) + geom_polygon(fill="white", color="black")
#ng