Ayuda memoria de R

   

Asignación de variables

A una variable se le puede asignar un valor empleando el símbolo = o <-. Ejemplo:

variable = 5
variable <- 5
variable=TRUE
variable="Este es un texto"

   

Mostrar un mensaje en la consola

Para mostrar un resultados, texto o cualquier contenido asociado a una variable se puede usar los comandos print o cat. Por ejemplo:

variable = 5
print(variable)
## [1] 5
print("Mostrando un mensaje en la consola")
## [1] "Mostrando un mensaje en la consola"
cat("\nEste mensaje incluye un salgo de linea")
## 
## Este mensaje incluye un salgo de linea
cat("\t Este mensaje incluye una tabulación al comenzar")
##   Este mensaje incluye una tabulación al comenzar
cat(paste("El valor de variable es:",variable))
## El valor de variable es: 5

   

Comentarios

Los comentarios se efectúan empleando el símbolo #.

# Este es un comentario
variable = 5 #Este también es un comentario

   

Descarga y uso de bibliotecas

R dispone de muchas funcionalidades que no se encuentran originalmente en su versión base, pero que sí puedes ser usadas desde diferentes bibliotecas complementarias. Para instalar una biblioteca es necesario utilizar el comando install.packages(“biblioteca”). Por ejemplo, si se desea instalar la biblioteca para gráficos avanzados denominado ggplot2, se debe utilizar el siguiente comando.

install.packages("ggplot2")
library("ggplot")

   

Operaciones matemáticas

Las siguientes ejemplos muestran diferentes operaciones matemáticas:

v1=180
v2=50
  • Suma
suma = v1 + v2
suma
## [1] 230
  • Multiplicación
multiplicacion = v1 * v2
multiplicacion
## [1] 9000
  • División
division = v1/v2
division
## [1] 3.6
  • Logaritmo base 10
vlog10 = log10(v1)
vlog10
## [1] 2.255273
  • Raíz cuadrada
raiz = sqrt(v1)
raiz
## [1] 13.41641
  • Seno de 180 en radianes
sinrad = sin(v1)
sinrad
## [1] -0.8011526
  • Seno de 180 en grados
singrad = sin(v1*pi/180)
singrad
## [1] 1.224647e-16
  • Aproximación de números
#el 2 indica la cantidad de digitos
aproximar = round(sinrad,2)
aproximar
## [1] -0.8

   

Estructuras de datos

Vectores

Los vectores permiten agrupar elementos de un mismo tipo. Para crearlos se debe utilizar la función combinar c(). Por ejemplo:

vector = c(2, 4, 6, 8, 10)
vector
## [1]  2  4  6  8 10

Puede acceder a los elementos de cada vector utilizando un índice [i].

vector[5] = 12
vector
## [1]  2  4  6  8 12

   

Matrices

Una matriz puede ser creada utilizando la función matrix o c. Empleando ncol y nrow es posible definir el número de filas y columnas. Ejemplo:

datos=matrix(c(6.2,3.4,5.1,7.2,5.3,50.3,33.2,45.3,60.3,47.8),nrow=5,ncol=2)
datos
##      [,1] [,2]
## [1,]  6.2 50.3
## [2,]  3.4 33.2
## [3,]  5.1 45.3
## [4,]  7.2 60.3
## [5,]  5.3 47.8

Se puede asignar nombres a filas y columnas utilizando los comandos colnames y rownames.

colnames(datos)=c("peso(Kg)","talla(cm)")
rownames(datos)=c("JAVIER","MIGUEL","KATHERINE","ANDREA","MOISES")
datos
##           peso(Kg) talla(cm)
## JAVIER         6.2      50.3
## MIGUEL         3.4      33.2
## KATHERINE      5.1      45.3
## ANDREA         7.2      60.3
## MOISES         5.3      47.8

Para efectuar operaciones matriciales dispone de varias sentencias, por ejemplo:

datos=matrix(c(6.2,3.4,5.1,7.2,5.3,50.3,33.2,45.3,60.3),nrow=3,ncol=3)
print(datos)     #Permite visualizar la matriz
##      [,1] [,2] [,3]
## [1,]  6.2  7.2 33.2
## [2,]  3.4  5.3 45.3
## [3,]  5.1 50.3 60.3
t(datos)         #Genera la matriz transpuesta
##      [,1] [,2] [,3]
## [1,]  6.2  3.4  5.1
## [2,]  7.2  5.3 50.3
## [3,] 33.2 45.3 60.3
datos*datos      #Corresponde a la multiplicación elemento por elemento
##       [,1]    [,2]    [,3]
## [1,] 38.44   51.84 1102.24
## [2,] 11.56   28.09 2052.09
## [3,] 26.01 2530.09 3636.09
datos%*%(datos)  #Corresponde a multiplicación matricial
##        [,1]    [,2]    [,3]
## [1,] 232.24 1752.76 2533.96
## [2,] 270.13 2331.16 3084.56
## [3,] 510.17 3336.40 6084.00
det(datos)       #Calcula el determinante
## [1] -7178.06
solve(datos)     #Calcula la matriz inversa
##              [,1]        [,2]         [,3]
## [1,]  0.272914966 -0.17216351 -0.020924874
## [2,] -0.003623542 -0.02849516  0.023401866
## [3,] -0.020059738  0.03833069 -0.001167446
diag(datos)      #Calcula la diagonal de la matriz
## [1]  6.2  5.3 60.3

   

Listas

Las listas permiten agrupar elementos de diversas características. Para utilizarlas se debe emplear la función list.

lista = list(nombre="diplodocus", genero="Saurópodos diplocínidos",
              antiguedad="150 Millones de años", largo_m=c(31.0, 36.5, 35.0, 20, 40))

Para acceder a los atributo de una lista utilice el comando attributes.

attributes(lista)
## $names
## [1] "nombre"     "genero"     "antiguedad" "largo_m"

También puede acceder o modificar los valores de una lista utilizando el símbolo $.

lista$nombre = "Brachiosaurus";
lista$genero = "Saurópodos  braquiosáuridos"
lista$largo_m[c(1,2,3,4,5)]  = 25
lista
## $nombre
## [1] "Brachiosaurus"
## 
## $genero
## [1] "Saurópodos  braquiosáuridos"
## 
## $antiguedad
## [1] "150 Millones de años"
## 
## $largo_m
## [1] 25 25 25 25 25

   

Data frames

Es posible la creación de tablas usando una estructura llamada data.frame. A modo de ejemplo, la siguiente tabla describe si algunas marcas de cereales en nuestro país contienen ingredientes transgénicos (Revista el Punto Final 2004).

marcas=c("BIOCENTURY","EL-GRANERO-INTEGRAL","GRANOVITA","PAGESA",
          "INTEGRAL-ESPIGAS","PASCUAL","SOJIVIT","HIPP","NUTREXPA",
          "NESTLÉ","KELLOGGS")

productos=c("Bicentury","Todos","Todos","Diet_Rádisson","Todos",
             "Pascual/Essential/MásVital/ViveSoy","Todos","Todos","Cola-Cao",
             "Chocapic/Fitness/Fibre1/Estrellitas/Golden-Grahams/Crunch/Cheerios"
             ,"Todos")

trans=c("NO","NO","NO","NO","NO","NO","NO","NO","NO","SI","SI");

cereales = data.frame(marcas=marcas,produtos=productos,transgenicos=trans)

head(cereales)
##                marcas                           produtos transgenicos
## 1          BIOCENTURY                          Bicentury           NO
## 2 EL-GRANERO-INTEGRAL                              Todos           NO
## 3           GRANOVITA                              Todos           NO
## 4              PAGESA                      Diet_Rádisson           NO
## 5    INTEGRAL-ESPIGAS                              Todos           NO
## 6             PASCUAL Pascual/Essential/MásVital/ViveSoy           NO

Este tipo de datos se puede almacenar en formato de texto con extensión .csv o .xls. Para ello se puede utilizar el comando write.table, donde el parámetro row.names= FALSE omite el uso de índices, quote evita que los números sean guardados en formato de texto, dec señala que el punto decimal será una coma y sep establece ; como carácter de separación.

write.table(cereales,"cereales.csv", row.names = FALSE , quote = FALSE, dec = ",", sep = ";",fileEncoding = "latin1")
  • Para leer archivos *.csv se utiliza la función read.table.
nueva_tabla=read.table("cereales.csv", header = TRUE, sep = ";") 
  • Es posible guardar variables en formato .rda o .rdata utilizando la función saveRDS.
saveRDS(cereales, file = "cereales.Rdata")
  • Para leer un archivo de estas características se utiliza la función readRDS.
rep_tabla= readRDS("cereales.Rdata")

   

Estructuras de control

Sentencia IF/ELSE

Se utiliza para comprobar una condición. Si ésta última es verdadera entonces se ejecuta determinada sentencia. En caso contrario, else, se realizará una sentencia diferente. Ejemplo:

mfARI = sample(1:9,1) #Crea un entero aleatorio entre 1 y 9
if (mfARI>=5) {
    print("El paciente tiene una autorregulación cerebral normal")
} else {
    print("El paciente tiene una autorregulación cerebral dañada")
}  
## [1] "El paciente tiene una autorregulación cerebral dañada"

   

Sentencia FOR

Implementa un bucle repitiendo un grupo de sentencias un número determinado de veces. Ejemplo:

for(i in 1:6) {
  print(i)
}  
## [1] 1
## [1] 2
## [1] 3
## [1] 4
## [1] 5
## [1] 6

   

Sentencia WHILE

Permite ejecutar repetidamente un bloque mientras una condición sea verdadera. Ejemplo:

i = 1 #declara variable

while(i<=6){
  print(i)
  i=i+1
} 
## [1] 1
## [1] 2
## [1] 3
## [1] 4
## [1] 5
## [1] 6

   

Funciones

La capacidad de crear funciones propias es fundamental para estudios futuros y la optimización de código. Una función en R se define de la siguiente manera: nombre=function{arg1,arg2,…}{expresion}

Cree un nuevo script usando FILE->NEW FILE->R-SCRIPT (CONTROL+SHIFT+N). Desarrolle una función como la definida en el siguiente ejemplo y posteriormente guarde el archivo con el nombre sumar_num.R

#Definición de función
sumar_num = function(x,y) {
  resultado=x+y 
  return(resultado)
}

A continuación se utilizará la consola de R/RStudio. Una buena práctica antes de cargar su script es la de eliminar las variables usadas anteriormente que no son de utilidad. El comando “ls()” permite chequear la tarea anterior.

rm(list=ls(all=TRUE)) #borra todas las variables en memoria
ls()
## character(0)

Posteriormente, si trabaja en RStudio puede cargar su función seleccionando en el menú FILE->OPEN FILE. Seleccione su archivo.R y en la ventana correspondiente presione RE-RUN (CRTL+SHFT+P). Si desea utilizar la consola de R base (también de RStudio) utilice la siguiente sentencia:

source("sumar_num.R")  #Revisar que el archivo se encuentre en la carpeta de trabajo
ls() #Lista todas las variables en memoria
## character(0)
#Prueba de función
res_sum = sumar_num(4,3)
res_sum
res_sum2 = sumar_num(c(2,3),c(3,8))
res_sum2
res_sum3 = sumar_num(matrix(c(1,1,1,1),nrow=2,ncol=2),matrix(c(2,2,2,2),nrow=2,ncol=2))
res_sum3