Sunday, September 6, 2015

R Programming Demo

R Programming Demo

This is a short demonstration of various things in R, some from an online class I recently completed and some from learning about R in its manual.   


Matrix Multiplication

> "Matrix Multiplication"
[1] "Matrix Multiplication"
> a<-matrix(c(1,3,4,-8),nrow=2,byrow=TRUE)
> a
     [,1] [,2]
[1,]    1    3
[2,]    4   -8
> b<-matrix(c(-3,2,0,1),nrow=2,byrow=TRUE)
> b
     [,1] [,2]
[1,]   -3    2
[2,]    0    1
> "Element by Element"
[1] "Element by Element"
> a*b
     [,1] [,2]
[1,]   -3    6
[2,]    0   -8
> "Linear Algebra Multiplication: Use %*%"
[1] "Linear Algebra Multiplication: Use %*%"
> a%*%b
     [,1] [,2]
[1,]   -3    5
[2,]  -12    0


Solving a Linear Equation


> "Solving a Linear System"
[1] "Solving a Linear System"
> A <- matrix(c(3,5,-5,-1,0,3,13,4,-3),nrow=3,byrow=TRUE)
> A
     [,1] [,2] [,3]
[1,]    3    5   -5
[2,]   -1    0    3
[3,]   13    4   -3
> x <- matrix(c(11,-2,10),nrow=3)
> x
     [,1]
[1,]   11
[2,]   -2
[3,]   10
> solve(A,x)
           [,1]
[1,]  0.1707317
[2,]  1.4878049
[3,] -0.6097561

Selecting Elements from a Vector

> "Selecting Things from a List"
[1] "Selecting Things from a List"
> randomvect <- c(-1.597,3.638,0.055,2.606,-2.053,-4.565,-2.470,-2.990,3.002,0.747,-2.813,2.524,0.096,-4.409,0.637)
> randomvect
 [1] -1.597  3.638  0.055  2.606 -2.053 -4.565 -2.470 -2.990  3.002  0.747 -2.813  2.524  0.096 -4.409  0.637
> "Select Every Third Element"
[1] "Select Every Third Element"
> randomvect[c(FALSE,FALSE,TRUE)]
[1]  0.055 -4.565  3.002  2.524  0.637
> "Select Elements Greater Than Zero"
[1] "Select Elements Greater Than Zero"
> randomvect[randomvect>0]
[1] 3.638 0.055 2.606 3.002 0.747 2.524 0.096 0.637
> "Select Elements In Between -1 and 1"
[1] "Select Elements In Between -1 and 1"
> randomvect[randomvect>-1 & randomvect<1]
[1] 0.055 0.747 0.096 0.637

Basic Linear Fit

> xdata <- c(-2,-1,-0,1,2,3,4)
> ydata <- c(-0.56,-0.36,0.15,0.33,0.52,0.77,0.93)
> df <- data.frame(x = xdata, y = ydata)
> df
   x     y
1 -2 -0.56
2 -1 -0.36
3  0  0.15
4  1  0.33
5  2  0.52
6  3  0.77
7  4  0.93
> fit<-lm(df$y~df$x)
> fit

Call:
lm(formula = df$y ~ df$x)

Coefficients:
(Intercept)         df$x 
  0.0007143    0.2535714 

> "Clear the Plot Screen"
[1] "Clear the Plot Screen"
> plot.new()
> "Scatterplot"
[1] "Scatterplot"
> plot(df$x,df$y,xlab="x",ylab="y",main="Demo Scatterplot")
> "Linear Plot"
[1] "Linear Plot"
> abline(lm(df$y~df$x),col="blue",lw=2)

Plot the Trigonometric Numbers

> "Plot The Trig Functions"
[1] "Plot The Trig Functions"
> xvect <- seq(-2*pi,2*pi,by=pi/64)
> ysin <- sin(xvect)
> plot.new()
> plot(xvect,ysin,main="y = sin x",col="blue")

> xtan <- seq(-pi/4, pi/4, by = pi/64)
> ytan <- tan(xtan)
> par(mfrow=c(2,2))
> plot(xvect, ysin, main = "y = sin x", xlab="x", ylab="y", col="blue",pch=8)
> plot(xvect, ycos, main = "y = cos x", xlab="x", ylab="y", col="red", pch=16)
> plot(xtan, ytan, main = "y = tan x", xlab="x", ylab="y", col="forestgreen", pch=20)


Quadratic Fit

> "Quadratic Fit"
[1] "Quadratic Fit"
> x <- c(-3.5,-2.25,-1.15,0,1.15,2.25,3.5)
> y <- c(10.6,6.3,3.1,2,3.3,6.4,10.4)
> plot(x,y,main="Quadratic Fit",col="chocolate",pch=20)
> fit <- lm(y~x+I(x^2))
> cvect <- coef(fit)
> xrng <- seq(-3.5,3.5,by=.01)
> yrng <- cvect[1] + cvect[2]*xrng + cvect[3]*xrng^2
> lines(xrng,yrng)

Histogram and One Variable Statistics

> scores <- c(99,97,96,95,94,29,39,90,92,92,91,86,84,54,65,72,76,77,81,82,90,33,93,92,89,88,90,98,68,71,73,75,97)
> "Minimum Score"
[1] "Minimum Score"
> min(scores)
[1] 29
> "Maximum Score"
[1] "Maximum Score"
> max(scores)
[1] 99
> "Average Score"
[1] "Average Score"
> mean(scores)
[1] 80.24242
> "Number of Students"
[1] "Number of Students"
> length(scores)
[1] 33
[1] "Basic Histogram"
> hist(scores)

> "10 Categories and Labels"
[1] "10 Categories and Labels"
> hist(scores, breaks=10, main="Student Score Breakdown", col="yellow")

> "Fiting a Distribution"
[1] "Fiting a Distribution"
> hist(scores, breaks=10, main="Student Score Distribution", col="gray85",prob=TRUE)
> lines(density(scores), lwd=2, col="navy")



Citation:

  R Core Team (2015). R: A language and environment for statistical computing. R Foundation for Statistical Computing, Vienna, Austria. URL

A personal note, thank you for your support.  My mom and I are still in recovering/coping mode. 


 See you next time,

Eddie


This blog is property of Edward Shore.  2015


Spotlight: Akron Brass FireCalc Pocket Computer

Spotlight: Akron Brass FireCalc Pocket Computer Welcome to a special Monday Edition of Eddie’s Math and Calculator blog. Thi...