Documentos de Académico
Documentos de Profesional
Documentos de Cultura
# Introducci�n a R #
####################
#-------------------------------------------------------------------------------
# Por qu� R?
# - Gratis
# - Intuitivo, facil de aprender
# - Source code, personalizar tareas
# - Gran numero de librerias
# - Popular en educaci�n e industria
# - Big data
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
# Scrirt y Consola
# "Limpiar" la consola : Ctrl + L
# "Correr" codigo : Ctrl + Intro
2 + 2
2 * 3
#-------------------------------------------------------------------------------
# Aritmetica basica
# + : suma
# - : resta
# / : division
# * : multiplicacion
(2 + 2) * (12 / 4)
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
# Concadenar valores
x <- c(3, 7, 1, 4, 2)
# secuencias de numeros
y <- 1:5
v <- rep(1, 5)
str(x)
# longitud de un objecto
length(x)
# operaciones
x + 2
x^2
exp(x)
x + y
y / z
# remover objetos
rm(val.1, x, y, z, v)
#-------------------------------------------------------------------------------
# clases de objetos:
# numeric, character, logical, NA, matrix, data.frame, function, ...
ventas <- c( 151.4, 134.2, 222.9, 102.5, 97.6, 115.7, 92.2, 113.1, 217.5, 249.9 )
ganancias <- c(42, 35, 24.1, 24.2, 21.9, 27.8, 16.6, 24.9, 45.2, 17.1)
activos <- c(3473.2, 3016.6, 620.9, 2513, 1943.4, 2816, 2196.8, 2611.5, 331.1,
412.5)
valor <- c(229.8, 200.5, 409.9, 306.6, 274.4, 149.2, 231.9, 141.3, 752, 171.9)
pais <- c("China", "China", "US", "US", "US", "China", "US", "China", "US",
"Japan")
class(pais)
#-------------------------------------------------------------------------------
# clase de objeto
class(A)
# dimension
dim(A)
# numero de filas
nrow(A)
# numero de columnas
ncol(A)
# operaciones
A + 2
A + B
2 * A
dim(A * B)
# remover A y B
rm(A, B)
# obtener un elemento
FG10[2, 1]
# obtener filas
FG10[1, ]
FG10[c(1, 2, 3), ]
FG10[1:3, ]
# obtener columnas
FG10[ , 1]
FG10[ , 1:2]
rm(FG10)
#-------------------------------------------------------------------------------
# numero de variables
ncol(FG10)
# obtener variables
FG10$sales
FG10[ , c("country","sales")]
# obtener individuos
FG10[1, ]
FG10[c(1, 2, 6, 8), ]
FG10[5, ] <- NA
is.na(FG10)
any(is.na(FG10))
class(registros.completos)
as.numeric(registros.completos)
sum( as.numeric(registros.completos) )
any( is.na(FG10.full) )
#-------------------------------------------------------------------------------
#########################################################
# Caso: Crimenes violentos por Estado en Estados Unidos #
#########################################################
class(USArrests)
str(USArrests)
ncol(USArrests)
#-------------------------------------------------------------------------------
USArrests$Murder
Murder
# datos faltantes?
any( is.na(USArrests) )
View(USArrests)
#-------------------------------------------------------------------------------
#########################
# manipulacion de datos #
#########################
# tasa de [arrestos de] homocidios en California: 9 (cada 100,000 habitantes)
USArrests["California", "Murder"]
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
head(USArrests2)
#-------------------------------------------------------------------------------
################################
# Algunas medidas estadisticas #
################################
mean(Rape) # promedio
# en los 50 estados, la tasa promedio de crimenes correspondientes a violaion es
# 21.232 (cada 100,000)
max(Rape) # maximo
min(Rape) # minimo
# el 25% de los estados tiene tasas de violacion inferiores a 15.1 (cada 100,000)
quantile(x = Rape, probs = 0.25) # cuartil 1
#-------------------------------------------------------------------------------
# Rango
max(Rape) - min(Rape)
# 38.7
# Rango intercuartilico
Q3.rape <- quantile(x = Rape, probs = 0.75)
Q1.rape <- quantile(x = Rape, probs = 0.25)
as.numeric( Q3.rape - Q1.rape )
# 11.1
# varianza
var(Rape)
# 87.72916
# la varianza tiene unidades cuadraticas (dificil interpretacion)
# la varianza es proporcional a la dispersion de los datos
# cuanto mas "grande" es la varianza, hay mayor dipersion en los datos con
# respecto al promedio
# coeficiente de variacion
sd(Rape) / mean(Rape)
# 0.4411447
# para establecer si la desv. estandar es "grande" o "pequena" se compara con el
# el CV no tiene unidades de medicion (adimensional)
# promedio:
# 0% < CV <= 5% : disperison baja
# 5% < CV <= 15% : dispersion moderada
# 15% < CV : dispersion alta
#-------------------------------------------------------------------------------
#############
# Funciones #
#############
f <- function(x) {
v1 <- x + 1
return( v1 )
}
f(x = 2)
f(2)
f(-3)
class(f)
#-------------------------------------------------------------------------------
f <- function(x, y) {
v1 <- x + y
v2 <- x * y
return(list( suma = v1, producto = v2 ))
}
f(2, 3)
f(x = 2, y = 5)
a <- f(x = 2, y = 5)
class(a)
str(a)
a$suma
a$producto
#-------------------------------------------------------------------------------
# if - else
f <- function(x) {
if (x > 0) {
out <- x
} else {
out <- -x
}
return( out )
}
f(1)
f(-1)
#-------------------------------------------------------------------------------
# if
rm(f)
#-------------------------------------------------------------------------------
class(resumen.Rape)
str(resumen.Rape)
resumen.Rape$promedio
resumen.Rape$mediana
resumen.Rape$CV
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------