1. Introducción a R

Nina Castro
16/6/2019

Algunos comandos útiles para iniciar

Antes de empezar con R, es útil saber un par de cosas.

LIMPIAR ESPACIO DE TRABAJO

ls()           # Lista de objetos actuales
## character(0)
rm(list=ls())  # Borrar objetos actuales
ls() 
## character(0)
gc()           # Garbage collection, reporta memoria en uso
##          used (Mb) gc trigger (Mb) limit (Mb) max used (Mb)
## Ncells 455240 24.4     985381 52.7         NA   630608 33.7
## Vcells 886720  6.8    8388608 64.0      16384  1767290 13.5

LIBRERÍAS

search()       # Busca librerías instaladas
## [1] ".GlobalEnv"        "package:stats"     "package:graphics" 
## [4] "package:grDevices" "package:utils"     "package:datasets" 
## [7] "package:methods"   "Autoloads"         "package:base"
library(base)     # Funciones básicas (aritméticas, input/output, basic programming support,...)
library(gdata)    # Leer y escribir Microsoft files
## gdata: read.xls support for 'XLS' (Excel 97-2004) files ENABLED.

## 

## gdata: read.xls support for 'XLSX' (Excel 2007+) files ENABLED.

## 
## Attaching package: 'gdata'

## The following object is masked from 'package:stats':
## 
##     nobs

## The following object is masked from 'package:utils':
## 
##     object.size

## The following object is masked from 'package:base':
## 
##     startsWith
#install.packages("foreign", repos="https://cran.itam.mx/", dependencies = TRUE)
library(foreign)  # Leer y escribir archivos "extranjeros"
library(stats)    # Estadisticas básicas
#install.packages("descr", repos="http://stat.ethz.ch/CRAN/", dependencies = TRUE)

#update.packages() # Actualizar librerias instalados

DIRECTORIO DE TRABAJO

getwd()           # Directorio actual
## [1] "/Users/anaescoto/Dropbox/PAPIME2019/Talleres/Taller2"
setwd("/Users/anaescoto/Dropbox/PAPIME2019/Talleres/Taller2") # Cambio de directorio OJO CON LA DIRECCIÓN DE LAS DIAGONALES
list.files()      # Lista de archivos
## [1] "Introduccion R_Nina.R" "Introducción.md"       "Introducción.Rmd"

R COMO CALCULADORA

1+1 # Suma dos digitos
## [1] 2
5*7 # 5*7
## [1] 35

TIPO DE DATOS

c('a','b','c')  # Caracter
## [1] "a" "b" "c"
1:7             # Entero
## [1] 1 2 3 4 5 6 7
40<80           # Valor logico
## [1] TRUE
2+2 == 5        # Valor logico
## [1] FALSE
T == TRUE       # T expresion corta de verdadero
## [1] TRUE
x <- 24         # Asignacion de valor 24 a la variable x para su uso posterior (OBJETO)
x/2             # Uso posterior de variable u objeto x
## [1] 12
x               # Imprime en pantalla el valor de la variable u objeto
## [1] 24
x <- TRUE       # Asigna el valor logico TRUE a la variable x OJO: x toma el ultimo valor que se le asigna
x
## [1] TRUE
sum (10,20,30)    # Funcion suma
## [1] 60
rep('R', times=3) # Repite la letra R el numero de veces que se indica
## [1] "R" "R" "R"
sqrt(9)           # Raiz cuadrada de 9
## [1] 3

VECTORES

y <- c(2,4,6)     # Vector numerico
y <- c('Primaria', 'Secundaria') # Vector caracteres
1:5               # Secuencia 1-5
## [1] 1 2 3 4 5
seq(1, 10, 0.5)   # Secuencia con incrementos diferentes a 1
##  [1]  1.0  1.5  2.0  2.5  3.0  3.5  4.0  4.5  5.0  5.5  6.0  6.5  7.0  7.5
## [15]  8.0  8.5  9.0  9.5 10.0
y[2]              # Acceder al segundo valor del vector y
## [1] "Secundaria"
y[3] <- 'Preparatoria y m??s' # Asgina valor a la tercera componente del vector
sex <-1:2         # Asigna a la variable sex los valores 1 y 2
names(sex) <- c("Femenino", "Masculino") # Asigna nombres al vector de elementos sexo
sex[2]            # Segundo elemento del vector sex
## Masculino 
##         2
z <- c(0, y, 5)   # Concatena escalares y vectores
z
## [1] "0"                   "Primaria"            "Secundaria"         
## [4] "Preparatoria y m??s" "5"
w <- vector('numeric', length=10) # Funcion vector
class(w)
## [1] "numeric"

FUNCIONES

# FUNCION AS
as.numeric(c('-.1','2.7','B')) # Funcion as.*
## Warning: NAs introduced by coercion

## [1] -0.1  2.7   NA

LISTAS

xx <- list (1, 'a', TRUE, 1+4i) # Lista (vector con elementos de diferentes clases)
xx
## [[1]]
## [1] 1
## 
## [[2]]
## [1] "a"
## 
## [[3]]
## [1] TRUE
## 
## [[4]]
## [1] 1+4i

MATRICES

m <- matrix (nrow=2, ncol=3, 1:6) # Matrices Ejemplo 1
m
##      [,1] [,2] [,3]
## [1,]    1    3    5
## [2,]    2    4    6
dim(m)
## [1] 2 3
attributes(m)
## $dim
## [1] 2 3
n <- 1:6     # Matrices Ejemplo 2
dim(n) <- c(2,3)
n
##      [,1] [,2] [,3]
## [1,]    1    3    5
## [2,]    2    4    6
xx <-10:12   # Matrices Ejemplo 3
yy<-14:16
cbind(xx,yy) # Une vectores por Columnas
##      xx yy
## [1,] 10 14
## [2,] 11 15
## [3,] 12 16
rbind(xx,yy) # Une vectores por Renglones
##    [,1] [,2] [,3]
## xx   10   11   12
## yy   14   15   16

FACTORES

x <- factor ( c('si', 'si', 'no')) # Factores
x
## [1] si si no
## Levels: no si
table(x)     # Frecuencia
## x
## no si 
##  1  2
unclass(x)   # Clase
## [1] 2 2 1
## attr(,"levels")
## [1] "no" "si"
x <- factor ( c('si', 'si', 'no'), levels=c('no', 'si'))
x
## [1] si si no
## Levels: no si

Missing values Valores perdidos

y <- c(1, 2, NA, 10, 3) # Missing values
is.na(y)    # Es missing?
## [1] FALSE FALSE  TRUE FALSE FALSE

DATA FRAMES "Tablas de datos"

x <- data.frame(id=1:4, sex=c('F', 'F', 'M', 'M')) # Data Frames
x
##   id sex
## 1  1   F
## 2  2   F
## 3  3   M
## 4  4   M
nrow(x)    # Número de renglones
## [1] 4
ncol(x)    # Número de columnas
## [1] 2

ETIQUETAS

x <- 1:2   # Etiquetas para cualquier objeto en R
names(x)
## NULL
names(x) <- c("Ocupado", "Desocupado")
names(x)
## [1] "Ocupado"    "Desocupado"