Operaciones básicas en R

R como calculadora

# Operaciones aritméticas básicas
5 + 7   # Suma
5 - 3   # Resta
5 * 7   # Multiplicación
5/3     # División
2^3     # Exponentes
# Logarítmos y exponenciales
x = 5/3
log2(x)     # Logarítmo en base 2 de x
log10(x)    # Logarítmo en base 10 de x
exp(x)      # Exponencial de x
# Funciones trigonométricas :
cos(x)    # Coseno de x
sin(x)    # Seno de x
tan(x)    # Tangente de x

Asignaciones

# 2) Asignaciín de valores a objetos o a variables
sitios <- 2         # Número de sitios = 2
sitios = 2          # Otra forma
n.sitios <- "dos"   # Número de sitios como un caracter
dos.sitios <- TRUE  # Objeto lógico

Algebra

# Vectores
sitios <- c(2, 3, 2, 3)   # Vector sitios
sitios                    # Imprimir el vector

sitios <- c("dos", "tres", "dos", "dos")    # Vector como caracter
sitios

abundancia <- c(TRUE, FALSE, TRUE, TRUE)    # vector con elementos lógicos
abundancia
# Vectores (continuación)
sitios <- c(2, 3, 2, 3)   # Vector sitios
names(sitios) <- c("dos", "tres", "dos", "dos")   # Nombres de los elementos 

sitios <- c(dos= 2, tres= 3, dos= 2, dos= 2)      # Otra forma
sitios
# Vectores (continuación)
sitios [1:3]      # Tres primeros elementos del vector sitios
sitios[c(1,4)]    # Primer y cuarto elemento del vector
sitios [-1]       # Eliminar el primer elemento del vector
# Matrices
Matriz <- matrix(c(1:15),5,3, byrow= FALSE)   # 5,3: Número de filas y columnas
Matriz
# Matrices (continuación)
t(Matriz)         # Transpuesta de la Matriz
Matriz[2,]        # Ver la segunda fila (coma a la derecha del dato)
Matriz[,2]        # Ver la segunda columna (coma a la izquierda del dato)
Matriz[2:4,]      # Filas 2 a la 4
Matriz[c(2,4),]   # Filas 2 y 4
Matriz[ ... ]     # Valores de la fila 3 y de las columnas 1:3
Matriz[ ... ]     # Excluye a la 3a fila

Bases de datos (data.frames - cbind)

# Base de datos (datos)
datos <- data.frame(
  "n" = 1:4,                                   # filas
  "indiv." = c("a", "b", "c", "d"),            # Individuos
  "sexo"   =  c("f","f","m","m"),              # Sexo
  "variable" = c(1.2, 3.4, 4.5, 5.6))          # Valor de la variable

datos      # Ver asinación del data.frame
# Base de datos (continuación)
head(datos)     # Muestra las primeras filas
names(datos)    # Nombres de las columnas
str(datos)      # Estructura de la base de datos
t(datos)        # Transpuesta de la base de datos

Importar y exportar bases de datos (read y write)

Complementos requeridos

# Librerías requeridas
library(tidyverse)
library(xtable)       # Importar y exportar
library(openxlsx)     # exportar "*.xlsx" 
library(readxl)       # Importar y exportar
library(xlsx)         # Importar y exportar "*.xlsx" 

Base de datos del ejercicio

# Base de datos (datos)
datos = data.frame (meses = c("enero", "junio", "octubre"),
                    periodos = c("sequía", "lluvias1", "lluvias2"),
                    taxón1 = c(2, 1, 3),
                    taxón2 = c(20, 25, 30),
                    taxón3 = c(4, 4, 4))

datos  # Ejecutar la asignación (datos)

Exportación

# Exportar bases de datos como "datos1"

write.csv2(datos, "datos1.csv")   # paquete "utils" 

write_csv2(datos, "datos1.csv")   # paquete "readxl" 

write.xlsx(datos, "datos1.xlsx")  # paquete "openxlsx" y "xlsx"

Importación

# Importar bases de datos como "datos1"

datos1 <- read.csv2("datos1.csv", row.names = 1)    # paquete "utils" 
datos1 <- read.csv2(file.choose(), row.names = 1)   # paquete "utils" 

datos1 <- read_csv2("datos1.csv")     # paquete "readxl" 
datos1 <- read_csv2(file.choose())    # paquete "readxl" 

datos1 <- read_excel("datos1.xlsx")    # paquete "readxl" 
datos1 <- read_excel(file.choose())    # paquete "readxl" 

datos1 <- read.xlsx("datos1.xlsx")    # paquete "openxlsx"
datos1 <- read.xlsx(file.choose())    # paquete "openxlsx"

Importación desde internet

# Importar archivo *.csv desde la web
datos2 <- read.csv2("https://javier-2712.github.io/Multivariados/Insectos.csv")

datos2 <- read_csv2("https://javier-2712.github.io/Multivariados/Insectos.csv")

Enlaces de importación y Exportación de datos

Importación de datos1

Importación de datos2

Diapositivas

Resúmenes con psych

/page()

Introductorio a Tidyverse

Importar la base de datos (datos)

datos1 <- read_excel(file.choose())    # paquete "readxl" 

Manipulación de los datos enlace

  • comando gather para visualizar bases de datos alargadas

  • comando spread para visualizar bases de datos a lo ancho

  • comando %>% tuberías o pippelines.

# Base de datos alargada (datos.l)
datos.l <- datos %>% 
  gather(key= Columnas, value= Valores)
datos.l
# Excluir la columna periodo en formato alargado (-periodos)
datos.l <- datos %>%
  gather(key= columnas, value= valores, -periodos)
datos.l

Nueva base de datos con factor

# Base de datos para 4 estudiantes (con 4 replicas)
# a los que se les midieron dos variables en cuatro ocasiones.
datos <- data.frame(n= 1:16,
                    Estudiante= c("a","a","a","a","b","b","b","b",
                                 "c","c","c","c", "d","d","d","d"),
                    Sexo= c("f","f","f","f","f","f","f","f",
                            "m","m","m","m","m","m","m","m"),
                    Variable1= c(1.2,3.4,4.5,5.6,1.2,3.4,4.5,5.6,
                                 0.8,2.4,1.8,1.5,1.6,2.1,1.2,0.8),
                    Variable2= c(2.4,6.8,9.0,11.2,2.4,6.8,9.0,11.2,
                                 1.6,4.8,3.6,3.0,3.2,4.2,2.4,1.6))
datos

Filtrando elementos del dataframe (filter)

# Fitrado por sexos "f" y "m"
datos.f <- datos %>% filter(Sexo == "f")
datos.f  # Base de datos para mujeres

datos.h <- datos %>% filter(Sexo == "m")
datos.h  # Base de datos para hombres
# Fitrado por sexos y estudiantes "f" y "m"
datos.a <- datos %>% filter(Sexo =="f", Estudiante =="a")
datos.a  # Datos de la estudiante a

datos.a <- datos.f %>% filter(Estudiante =="a")
datos.a # Datos de la estudiante a

Filtrando en orden descendente o ascendente (arrange)

# Filtrando en orden descendente y ascendente
datos.des <- datos %>% arrange(desc(Variable1))
datos.des  # Variable asignada

datos.asc <- datos %>% arrange(Variable1)
datos.asc  # Variable asignada

Combinación de filtrado y orden (filter + arrange)

# Filtrar mujeres en orden descendente. 
datos.des.f <- datos %>% 
  filter(Sexo == "f")  %>% 
  arrange(desc(Variable1))
datos.des.f  # Asignación 

Generación de variables derivadas (arrange)

# Insertar nuevas variables (mutate)
datos.3 <- datos %>% 
  mutate(Variable3 = Variable1 * Variable2)
datos.3  # Asignación 

Combinación de filtrado, nuevas variables y orden (filter + mutate + arrange)

# Combinación de funciones (filter, mutate, arrange)
datos.4  <- datos %>%
  filter (Sexo == "f") %>%
  mutate (Variable3 = Variable2 * 12) %>%
  arrange (desc(Variable3))
datos.4   # Asignación 
# Combinación de funciones (filter, mutate, arrange)
datos.4  <- datos %>%
  filter (Sexo == "f", Estudiante == "b") %>%
  mutate (Variable3 = Variable2 * 12) %>%
  arrange (desc(Variable3))
datos.4

Taller práctico para la casa

  1. Realizar los ejemplos del siguiente enlace, utilizando las siguientes opciones de tidyverse:
  1. Realizar los ejemplos del siguiente enlace, utilizando las siguientes opciones de tidyverse:
  1. Realizar los ejemplos del siguiente enlace, utilizando las siguientes opciones de tidyverse:
  1. Realizar los ejemplos del siguiente enlace, utilizando las siguientes opciones de tidyverse: