params <-
list(isSlides = "no")
## ----setup, include=FALSE-----------------------------------------------------
suppressPackageStartupMessages(require(knitr))
knitr::opts_chunk$set(echo = TRUE, tidy = T)
## ----xaringan-themer, include=FALSE, warning=FALSE----------------------------
library(xaringanthemer)
style_mono_accent(
base_color = "#23373B",
header_font_google = google_font("Montserrat"),
text_font_google = google_font("Fira Sans", "300", "300i"),
code_font_google = google_font("Fira Code")
)
## ----results='asis',include=TRUE,echo=FALSE-----------------------------------
if(params$isSlides != "yes"){
cat("# Introduction to R (part 2)
---
"
)
}
## ----echo=T,eval=T------------------------------------------------------------
aVector <- c(1,2,3,4,5,6,7,8,9,10)
aMatrix <- matrix(aVector,ncol=2,nrow=5,byrow = TRUE)
aFactor <- factor(c("R","Python","R","R","Python"),levels = c("R","Python"))
aDataFrame <- data.frame(Number=c(1,2,3,4,5),Factor=aFactor)
## ----echo=T,eval=T------------------------------------------------------------
aVector <- c(1,2,3,4,5,6,7,8,9,10)
aVector[10]
aVector[10] <- 0
aVector
## ----echo=T,eval=T,tidy=FALSE-------------------------------------------------
aMatrix <- matrix(aVector,ncol=2,
nrow=5,byrow = TRUE)
aMatrix
aMatrix[1,]
aMatrix[,1]
## ----echo=T,eval=T,tidy=FALSE-------------------------------------------------
aMatrix[1,1] <- 0
aMatrix[,2] <- 100
aMatrix
## ----echo=T,eval=T,tidy=FALSE-------------------------------------------------
aMatrix <- matrix(aVector,ncol=2,
nrow=5,byrow = TRUE)
aMatrix
## ----echo=T,eval=T,tidy=FALSE-------------------------------------------------
aMatrix[1,2] <- "Word"
aMatrix
## ----echo=T,eval=T------------------------------------------------------------
aVector <- c(1,2,3,4,5,6,7,8,9,10)
aVector > 9
aFactor <- factor(c("R","Python","R","R","Python"),levels = c("R","Python"))
aDataFrame <- data.frame(Number=c(1,2,3,4,5),Factor=aFactor)
aDataFrame
aDataFrame$Factor == "R"
## ----echo=T,eval=T------------------------------------------------------------
aVector <- c(1,2,3,4,5,6,7,8,9,10)
aVector > 5
aVector[aVector > 5] <- 10
aVector
## ----echo=T,eval=T,tidy=T-----------------------------------------------------
aFactor <- factor(c("R","Python","R","R","Python"),
levels = c("R","Python"))
aDataFrame <- data.frame(Number=c(1,2,3,4,5),
Factor=aFactor)
aDataFrame[aDataFrame$Factor == "R",2] <- "NotPython"
aDataFrame
## ----echo=T,eval=T,tidy=FALSE-------------------------------------------------
aDataFrame <- data.frame(Number=c(1,2,3,4,5),
Factor=aFactor)
aDataFrame$Factor <- factor(aDataFrame$Factor,
levels = c("R","Python","NotPython"))
aDataFrame[aDataFrame$Factor == "R",2] <- "NotPython"
aDataFrame
## ----echo=T,eval=T------------------------------------------------------------
Table <- read.table("data/readThisTable.csv",sep=",",header=T,row.names=1)
Table[1:3,]
## ----echo=T,eval=F------------------------------------------------------------
## write.table(Table,file="data/writeThisTable.csv", sep=",", row.names =F,col.names=T)
## ----echo=T,eval=F------------------------------------------------------------
## ?merge
## ----results='asis',include=TRUE,echo=FALSE-----------------------------------
if(params$isSlides == "yes"){
cat("class: inverse, center, middle
# Conditions and Loops
---
"
)
}else{
cat("# Conditions and Loops
---
"
)
}
## -----------------------------------------------------------------------------
x <- 1:10
x[x < 4]
## ----message=T----------------------------------------------------------------
x <- TRUE
if(x){
message("x is true")
}
x <- FALSE
if(x){
message("x is true")
}
## ----message=T----------------------------------------------------------------
x <- 10
y <- 4
if(x > y){
message("The value of x is ",x," which is greater than ", y)
}
## ----message=T----------------------------------------------------------------
y <- 20
if(x > y){
message("The value of x is ",x," which is greater than ", y)
}
## ----message=T----------------------------------------------------------------
x <- 3
if(x < 5){
message(x, " is less than to 5")
}else{
message(x," is greater than or equal to 5")
}
## ----message=T----------------------------------------------------------------
x <- 10
if(x < 5){
message(x, " is less than 5")
}else{
message(x," is greater than or equal to 5")
}
## ----message=TRUE-------------------------------------------------------------
x <- 5
if(x > 5){
message(x," is greater than 5")
}else if(x == 5){
message(x," is 5")
}else{
message(x, " is less than 5")
}
## -----------------------------------------------------------------------------
x <- 1:10
x
## ----message=TRUE-------------------------------------------------------------
ifelse(x <= 3,"lessOrEqual","more")
## -----------------------------------------------------------------------------
ifelse(x == 3,"same",
ifelse(x < 3,"less","more")
)
## ----message=TRUE-------------------------------------------------------------
x <- 1
while(x < 3){
message("x is ",x," ")
x <- x+1
}
message("Finally x is not less than 3")
## ----message=TRUE-------------------------------------------------------------
x <- 1:5
for(i in x){
message(i," ", appendLF = F)
}
## ----message=TRUE-------------------------------------------------------------
x <- toupper(letters[1:5])
for(i in x){
message(i," ", appendLF = F)
}
## ----message=T----------------------------------------------------------------
geneName <- c("Ikzf1","Myc","Igll1")
expression <- c(10.4,4.3,6.5)
1:length(geneName)
for(i in 1:length(geneName)){
message(geneName[i]," has an RPKM of ",expression[i])
}
## ----echo=T,eval=F------------------------------------------------------------
## x <- 1:13
##
## for(i in 1:13){
## if(i > 10){
## message("Number ",i," is greater than 10")
## }else if(i == 10){
## message("Number ",i," is 10")
## }else{
## message("Number ",i," is less than 10")
## }
## }
## ----message=T,echo=F---------------------------------------------------------
x <- 1:13
for(i in 1:13){
if(i > 10){
message("Number ",i," is greater than 10")
}else if(i == 10){
message("Number ",i," is 10")
}else{
message("Number ",i," is less than 10")
}
}
## ----message=T,eval=F---------------------------------------------------------
## x <- 1:13
##
## for(i in 1:13){
## if(i < 10){
## message("Number ",i," is less than 10")
## }else if(i == 10){
## message("Number ",i," is 10")
## break
## }else{
## message("Number ",i," is greater than 10")
## }
## }
## ----message=T,eval=T,echo=F--------------------------------------------------
x <- 1:13
for(i in 1:13){
if(i < 10){
message("Number ",i,
" is less than 10")
}else if(i == 10){
message("Number ",i,
" is 10")
break
}else{
message("Number ",i,
" is greater than 10")
}
}
## -----------------------------------------------------------------------------
matExample <- matrix(c(1:4),nrow=2,ncol=2,byrow=T)
matExample
## -----------------------------------------------------------------------------
apply(matExample,1,mean)
## -----------------------------------------------------------------------------
apply(matExample,2,mean)
## -----------------------------------------------------------------------------
apply(matExample,1,paste,collapse=";")
## -----------------------------------------------------------------------------
lapply(c(1,2),mean)
## -----------------------------------------------------------------------------
lapply(list(1,c(NA,1),2),mean, na.rm=T)
## -----------------------------------------------------------------------------
exampleVector <- c(1,2,3,4,5)
exampleList <- list(1,2,3,4,5)
sapply(exampleVector, mean, na.rm=T)
sapply(exampleList, mean, na.rm=T)
## ----tidy=FALSE---------------------------------------------------------------
exampleList <- list(row1=1:5,
row2=6:10,
row3=11:15)
exampleList
## -----------------------------------------------------------------------------
lapply(exampleList, quantile)
## -----------------------------------------------------------------------------
sapply(exampleList, quantile)
## ----tidy=FALSE---------------------------------------------------------------
exampleList <- list(df=data.frame(sample=paste0("patient",1:2), data=c(1,12)),
vec=c(1,3,4,5))
sapply(exampleList, summary)
## ----results='asis',include=TRUE,echo=FALSE-----------------------------------
if(params$isSlides == "yes"){
cat("class: inverse, center, middle
# Custom functions
---
"
)
}else{
cat("# Custom functions
---
"
)
}
## ----makingfunctions,eval=FALSE-----------------------------------------------
## myFirstFunction <- function(MYARGUMENT){
## ...................
## ..CODE_TO_EXECUTE..
## ...................
## return(MYRESULT)
## }
##
## myFirstFunction(MYARGUMENT=MY_USER_SUPPLIED_ARGUMENT)
##
## ----makingfunctionsb---------------------------------------------------------
myFirstFunction <- function(num1,num2){
sumNum <- num1+num2
return(sumNum)
}
myResult <- myFirstFunction(num1=2,num2=3)
myResult
## ----makingfunctionsc,error=TRUE----------------------------------------------
myFirstFunction <- function(num1,num2){
sumNum <- num1+num2
multipleNum <- num1*num2
return(sumNum,multipleNum)
}
myResult <- myFirstFunction(num1=2,num2=3)
## ----makingfunctionsd,error=FALSE---------------------------------------------
myFirstFunction <- function(num1,num2){
sumNum <- num1+num2
multipleNum <- num1*num2
VectorOfResults <- c(sumNum,multipleNum)
names(VectorOfResults) <- c("multiple","sum")
return(VectorOfResults)
}
myResult <- myFirstFunction(num1=2,num2=3)
myResult
## ----makingfunctionse,error=FALSE---------------------------------------------
myFirstFunction <- function(num1,num2){
sumNum <- num1+num2
multipleNum <- num1*num2
InputNumbers <- c(FirstNum=num1,SecondNum=num2)
DF <- data.frame(Sum=sumNum,Multiple=multipleNum)
listToReturn <- list(Input=InputNumbers,Result=DF)
return(listToReturn)
}
myResult <- myFirstFunction(num1=2,num2=3)
myResult
## ----makingfunctionsf,error=FALSE---------------------------------------------
myFirstFunction <- function(num1,num2){
sumNum <- num1+num2
multipleNum <- num1*num2
InputNumbers <- c(FirstNum=num1,SecondNum=num2)
DF <- data.frame(Sum=sumNum,Multiple=multipleNum)
listToReturn <- list(Input=InputNumbers,Result=DF)
message("Before return")
return(listToReturn)
message("After return")
}
myResult <- myFirstFunction(num1=2,num2=3)
myResult
## ----makingfunctionsg,error=FALSE---------------------------------------------
myFirstFunction <- function(num1,num2){
sumNum <- num1+num2
multipleNum <- num1*num2
InputNumbers <- c(FirstNum=num1,SecondNum=num2)
DF <- data.frame(Sum=sumNum,Multiple=multipleNum)
listToReturn <- list(Input=InputNumbers,Result=DF)
listToReturn
}
myResult <- myFirstFunction(num1=2,num2=3)
myResult
## ----makingfunctionsh,error=TRUE----------------------------------------------
myFirstFunction <- function(num1,num2){
sumNum <- num1+num2
return(sumNum)
}
myResult <- myFirstFunction(num1=2,num2=3)
myResult
sumNum
## ----makingfunctionsi,error=FALSE---------------------------------------------
my3rdNumber <- 4
myFirstFunction <- function(num1,num2){
sumNum <- num1+num2+my3rdNumber
return(sumNum)
}
myResult <- myFirstFunction(num1=2,num2=3)
myResult
## ----makingfunctionsj,error=FALSE---------------------------------------------
my3rdNumber <- 4
myFirstFunction <- function(num1,num2){
my3rdNumber <- num1+num2+my3rdNumber
return(my3rdNumber)
}
myResult <- myFirstFunction(num1=2,num2=3)
myResult
my3rdNumber
## ----makingfunctionsk,error=FALSE---------------------------------------------
my3rdNumber <- 4
myFirstFunction <- function(num1,num2){
my3rdNumber <<- num1+num2+my3rdNumber
return(my3rdNumber)
}
myResult <- myFirstFunction(num1=2,num2=3)
myResult
my3rdNumber
## ----makingfunctionsl,error=FALSE---------------------------------------------
myFirstFunction <- function(num1=1,num2=3){
my3rdNumber <- num1+num2+my3rdNumber
return(my3rdNumber)
}
myFirstFunction()
myFirstFunction(3,4)
## ----makingfunctions_zscores--------------------------------------------------
my_zscore <- function(my_number, my_vector){
my_mean <- mean(my_vector)
message("Mean is ", my_mean)
diff_from_mean <- my_number-my_mean
stdev <- sd(my_vector)
my_z <- diff_from_mean/stdev
return(my_z)
}
A <- rnorm(20)
my_zscore(my_number=A[1], my_vector=A)
## ----makingfunctionsO,error=FALSE,eval=FALSE----------------------------------
## debug(myFirstFunction)
## undebug(myFirstFunction)
## ----message=F----------------------------------------------------------------
sapply(A, my_zscore, my_vector=A)
## ----results='asis',include=TRUE,echo=FALSE-----------------------------------
if(params$isSlides == "yes"){
cat("class: inverse, center, middle
# Getting Additional Libraries
---
"
)
}else{
cat("# Getting Additional Libraries
---
"
)
}
## ----eval=F-------------------------------------------------------------------
## library(ggplot2)
## ----eval=F-------------------------------------------------------------------
## library()
## ----eval=F-------------------------------------------------------------------
## install.packages("Hmisc")
## ----results='asis',include=TRUE,echo=FALSE-----------------------------------
if(params$isSlides == "yes"){
cat("class: inverse, center, middle
# Scripts
---
"
)
}else{
cat("# Scripts
---
"
)
}
## -----------------------------------------------------------------------------
source("scripts/dayOfWeek.r")
dayOfWeek()
## ----eval=F-------------------------------------------------------------------
## args <- commandArgs(TRUE)
## myFirstArgument <- args[1]
## myFirstArgument
## ----eval=F-------------------------------------------------------------------
## as.numeric(myFirstArgument)