Introducción a R#

El lenguaje R comparte muchos rasgos con Python, incluyendo la caracetrística de ser amigable con los usuarios y estar actualizado constantemente. Sin embargo R se utiliza regularmente para análisis estadísticos y figuras.

Para utilizar este programa debemos instalarlo de acuerdo al sistema operativo que utilizamos https://rstudio-education.github.io/hopr/starting.html.

El programa más simple y cómo ejecutarlo#

R, como Python, es un lenguaje que interpreta un archivo de texto (o múltiples) por medio de comandoes que le permiten interactuar con la CPU y RAM a través del sistema operativo. Desde la terminal el programa se invoca escribiendo R y sabemos que estamos dentro'' de R porque la línea está precedida por >``. Dentro de R

R
R version 4.2.3 (2023-03-15) -- "Shortstop Beagle"
Copyright (C) 2023 The R Foundation for Statistical Computing
Platform: x86_64-apple-darwin17.0 (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

  Natural language support but running in an English locale

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

> 

Una vez dentro de R podemos cambiar el directorio de trabajo

getwd()
setwd("/Users/laura/docencia/eia/bioinfo/clase_R")
print("Hello World")

# salimos de R con "quit"
q()

Así como en python, en R también podemos escribir este comando dentro de un script y ejecutarlo

nano HelloWorld.R 

Y ahora dentro de nano o vi escribimos

#!/usr/bin/env Rscript

print("Hello World!")

Modificamos los permisos para hacer el script ejecutable y lo corremos desde la terminal

chmod +x Rscript.R
./Rscript

otra forma de correrlo es generando un archivo de output con el siguiente comando desde la terminal

R CMD BATCH HelloWorld.R
less HelloWorld.Rout 

De manera más simple y amigable, podemos utilizar Rstudio o VisualStudio para escribir el script y correr los comandos desde allí mismo

Comando y conceptos básicos#

R funciona como calculadora y como interpretador de texto

# puedo asignar una variable con "=" o "<-"
x <- 2*3
x
x = 2*3
x 

# o variables con texto
minombre <-"laura"

#y concatenar el texto
cat("mi nombre es",minombre)

Vectores#

Un vector consiste en varios elementos del mismo tipo (ej números o caracteres alfabéticos), mientras que las listas pueden ser mixtas. Las variables que utilizaremos mas frecuentemente son vectores y dataframes. Para definir un vector se utiliza c() (combine). Por ejemplo un vector con los elementos 8, 6, 9, 10, y 5, escribimos:

mivector <- c(8, 6, 9, 10, 5) # note las comas entre números!
mivector
mivector[1] # primer elemento
mivector[4] # cuarto elemento
mean(mivector) #aplica la media de los elementos
mivector*10 #multiplica todos los elementos por la constante
mivector2 <- c(5, 10, 15, 20, 25, 30)
mivector+mivector2

Asimismo se puede definir vectores con caracteres de texto

mi.seq <- c("A","T","C","G")
mi.oligos <- c("ATCGC","TTTCGC","CCCGCG","GGGCGC")
### Listas

milist <- list(nombre="Laura", 
               apellido="Salazar", 
               mivector)
milist$nombre
milist$apellido
milist[[3]] #mivector no se definió como variable, pero puede extraerse de su posición (note el doble corchete)

Tables#

La función table() tabula el número de ocurrencias de elementos en un vector, por ejemplo mivector

bases <- c("A", "T", "A", "A", "T", "C", "G", "C", "G")
bases.table <- table(bases)
bases.table[["T"]]

Dataframes#

nordic_area <- c(42434, 303815, 100250, 304282, 410335)
nordic_names <- c("Denmark", "Finland", "Iceland", "Norway", "Sweden")
nordic <- c(5868927, 5572355, 350773, 5465387, 10185555)
nordic_df <- data.frame(country = nordic_names, 
                        population = nordic, 
                        area = nordic_area)

# cada columna es un vector
nordic_df$country
nordic_df$population
nordic_df$area

Instalación de librerías#

Dentro de R se pueden instalar librerías los comandos

# opción1
install.packages("ape")
install.packages("BiocManager")
#opción2 (necesita tener el instalador BiocManager)
# y se carga la librería BiocManager para instalar
library(BiocManager)
BiocManager::install("ape")
BiocManager::install("msa")

También se puede utilizar el gestionador conda