params <- list(isSlides = "no") ## ----setup, include=FALSE----------------------------------------------------- suppressPackageStartupMessages(require(knitr)) knitr::opts_chunk$set(echo = TRUE, tidy = T) ## ---- results='asis',include=TRUE,echo=FALSE---------------------------------- if(params$isSlides != "yes"){ cat("# Introduction to R (part 2) --- " ) } ## ---- results='asis',include=TRUE,echo=FALSE---------------------------------- if(params$isSlides == "yes"){ cat("class: inverse, center, middle # Reading and Writing Data

--- " ) }else{ cat("# Reading and Writing Data --- " ) } ## ---- echo=F------------------------------------------------------------------ minRep <- rbind(cbind(matrix(rnorm(12,4),ncol=3,byrow = T),matrix(c(rnorm(9,4),rnorm(3,8)),ncol=3,byrow = T)), cbind(matrix(rnorm(12,10),ncol=3,byrow = T),matrix(c(rnorm(6,3),rnorm(6,10)),ncol=3,byrow = T))) colnames(minRep) <- paste0(c("Sample_"), 1:5,".",sort(rep(c("hi","low"),3))) minRepdf <- data.frame(Gene_Name=paste("Gene",letters[1:8],sep="_"),minRep) #minRepdf$Gene_Name <- paste("Gene",letters[1:8],sep="_") #write.table(minRepdf,file="readThisTable.csv",sep=",",row.names=F) kable(minRepdf[,1:4], format='html') ## ---- eval =F----------------------------------------------------------------- ## getwd() ## dir() ## setwd("~/Downloads/RockefellerUniversity-Intro_To_R/r_course") ## ----echo=T------------------------------------------------------------------- Table <- read.table("data/readThisTable.csv",sep=",",header=T) Table[1:4,1:3] ## ----echo=T------------------------------------------------------------------- Table <- read.table("data/readThisTable.csv",sep=",",header=T,row.names=1) Table[1:4,1:3] ## ----echo=T------------------------------------------------------------------- URL <- "http://rockefelleruniversity.github.io/readThisTable.csv" Table <- read.table(URL,sep=",",header=T) Table[1:2,1:3] ## ----echo=T------------------------------------------------------------------- write.table(Table, file="data/writeThisTable.csv", sep=",") ## ----echo=T------------------------------------------------------------------- write.table(Table, file="data/writeThisTable.csv", sep=",", row.names =F, col.names=T) ## ----------------------------------------------------------------------------- head(Table) ## ----------------------------------------------------------------------------- tail(Table) head(Table, 3) ## ----echo=T,eval=FALSE-------------------------------------------------------- ## install.packages("rio") ## ----echo=T,eval=TRUE--------------------------------------------------------- library("rio") ## ----echo=T,eval=TRUE--------------------------------------------------------- Table <- import("data/readThisTable.csv") Table[1:2,] ## ----echo=T,eval=TRUE--------------------------------------------------------- Table <- import("data/readThisXLS.xls", which=2) Table <- import("data/readThisXLS.xls", which="Metadata") Table[1:2,] ## ----echo=T,eval=F------------------------------------------------------------ ## ExpressionScores <- Table$ExpressionScores ## export(ExpressionScores, file = "data/writeThisXLSX.xlsx") ## ## ---- results='asis',include=TRUE,echo=FALSE---------------------------------- if(params$isSlides == "yes"){ cat("class: inverse, center, middle # Ordering, selecting and merging

--- " ) }else{ cat("# Ordering, selecting and merging --- " ) } ## ----------------------------------------------------------------------------- my_df <- read.table("data/categoriesAndExpression.txt",sep="\t",header=T) head(my_df) ## ----------------------------------------------------------------------------- order(my_df[,4]) ## ----------------------------------------------------------------------------- my_df_ordered <- my_df[order(my_df[,4]),] head(my_df_ordered) ## ----------------------------------------------------------------------------- my_df_ordered <- my_df[order(my_df[,4], decreasing = T),] head(my_df_ordered) ## ----------------------------------------------------------------------------- my_df_ordered$Expression > 70 ## ----vectorLogicalFromOperators_introtoR-------------------------------------- idx <- my_df_ordered$Expression > 70 my_df_ordered[idx,] ## ----------------------------------------------------------------------------- my_df_ordered[my_df_ordered$Expression > 60 & my_df_ordered$pathway == "TGFb",] ## ----vectorInFuncion_introtoR------------------------------------------------- my_favorite_genes <- c("Gene1","Gene10","Gene15") logical_index <- my_df$geneName %in% my_favorite_genes logical_index ## ----------------------------------------------------------------------------- my_df[logical_index,] ## ---- echo=F, eval=F---------------------------------------------------------- ## df_out <- data.frame("Gene"=my_df[,1], "Length"=sample(200:2000,100)) ## ## write.table(df_out, "data/gene_lengths.txt",sep="\t",col.names=T, row.names=F) ## ----dataframesMergeData1_introtoR-------------------------------------------- my_df2 <- read.table("data/gene_lengths.txt",sep="\t",header=T) nrow(my_df2) head(my_df2) ## ----dataframesMergeData2_introtoR-------------------------------------------- nrow(my_df) ## ----------------------------------------------------------------------------- merge_df <- merge(my_df, my_df2, by.x="geneName","Gene", all=FALSE) merge_df ## ---- 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 <- 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: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") } } ## ----------------------------------------------------------------------------- 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 # Plotting

--- " ) }else{ cat("# Plotting --- " ) } ## ----------------------------------------------------------------------------- plot(merge_df[,c(4,5)]) ## ---- eval=F------------------------------------------------------------------ ## plot(merge_df[,3]) ## ---- echo=F------------------------------------------------------------------ try(plot(merge_df[,3])) ## ---- fig.width=8,fig.height=4.5,dpi=300,out.width="900px",height="900px"----- merge_df[,3] <- factor(merge_df[,3]) plot(merge_df[,3]) ## ----------------------------------------------------------------------------- boxplot(Expression ~ pathway, merge_df) ## ---- eval=F------------------------------------------------------------------ ## library(ggplot2) ## ## ggplot(merge_df, aes(x=pathway, y=Expression, fill=pathway))+ ## geom_violin()+ ## geom_jitter(width=0.1)+ ## theme_linedraw()+ ## ggtitle("Gene Expression in Glycolyis and TGFb pathways") ## ---- echo=F------------------------------------------------------------------ library(ggplot2) ggplot(merge_df, aes(x=pathway, y=Expression, fill=pathway))+ geom_violin()+ geom_jitter(width=0.1)+ theme_linedraw()+ ggtitle("Gene Expression in Glycolyis and TGFb pathways")