Documentos de Académico
Documentos de Profesional
Documentos de Cultura
R - Inicio
R - Descripción general
R - Configuración del entorno
R - Sintaxis básica
R - Tipos de datos
R - Variables
R - Operadores
R - Toma de decisiones
R - Bucles
R - Funciones
R - Cuerdas
R - Vectores
R - Listas
R - Matrices
R - Matrices
R - Factores
R - Marcos de datos
R - Paquetes
R: remodelación de datos
Interfaces de datos R
R - Archivos CSV
R - Archivos Excel
R - Archivos binarios
R - Archivos XML
R - Archivos JSON
R - Datos web
R - Base de datos
R Tablas y gráficos
R - Gráficos circulares
R - Gráficos de barras
R - Diagramas de caja
R - Histogramas
R - Gráficos lineales
R - Gráficos de dispersión
R Estadísticas Ejemplos
R - Media, mediana y moda
R - Regresión lineal
R - Regresión múltiple
R - Regresión logística
R - Distribución normal
R - Distribución binomial
R - Regresión de Poisson
R - Análisis de covarianza
R - Análisis de series de tiempo
R - Mínimo cuadrado no lineal
R - Árbol de decisión
R - Bosque aleatorio
R - Análisis de supervivencia
R - Pruebas de Chi cuadrado
R - Descripción general
R es un lenguaje de programación y un entorno de software para análisis
estadístico, representación gráfica e informes. R fue creado por Ross Ihaka y
Robert Gentleman en la Universidad de Auckland, Nueva Zelanda, y
actualmente es desarrollado por el Equipo de Desarrollo de R.
El núcleo de R es un lenguaje informático interpretado que permite la
ramificación y el bucle, así como la programación modular mediante
funciones. R permite la integración con los procedimientos escritos en los
lenguajes C, C ++, .Net, Python o FORTRAN para mayor eficiencia.
R está disponible gratuitamente bajo la Licencia Pública General de GNU, y se
proporcionan versiones binarias precompiladas para varios sistemas
operativos como Linux, Windows y Mac.
R es software libre distribuido bajo un estilo de GNU copia a la izquierda, y
una parte oficial del proyecto GNU llamado GNU S .
Evolución de R
R fue escrito inicialmente por Ross Ihaka y Robert Gentleman en el
Departamento de Estadística de la Universidad de Auckland en Auckland,
Nueva Zelanda. R hizo su primera aparición en 1993.
Un gran grupo de personas ha contribuido a R mediante el envío de códigos e
informes de errores.
Desde mediados de 1997 ha habido un grupo central (el "Equipo R Core") que
puede modificar el archivo de código fuente R.
Instalación de ventanas
Instalación de Linux
R está disponible como binario para muchas versiones de Linux en la
ubicación R Binarios .
Las instrucciones para instalar Linux varían de un sabor a otro. Estos pasos se
mencionan en cada tipo de versión de Linux en el enlace mencionado. Sin
embargo, si tiene prisa, puede usar el comando yum para instalar R de la
siguiente manera:
$ yum install R
El comando anterior instalará la funcionalidad principal de la programación de
R junto con los paquetes estándar, aún necesita un paquete adicional, luego
puede iniciar la solicitud de R de la siguiente manera:
$ R
R version 3.2.0 (2015-04-16) -- "Full of Ingredients"
Copyright (C) 2015 The R Foundation for Statistical Computing
Platform: x86_64-redhat-linux-gnu (64-bit)
R - Sintaxis básica
Como convención, comenzaremos a aprender programación R escribiendo un
"¡Hola, mundo!" programa. Dependiendo de las necesidades, puede
programar en el símbolo del sistema R o puede usar un archivo de script R
para escribir su programa. Verifiquemos ambos uno por uno.
R Script File
Por lo general, hará su programación escribiendo sus programas en archivos
de script y luego ejecutará esos scripts en el símbolo del sistema con la ayuda
del intérprete R llamado Rscript . Comencemos escribiendo el siguiente
código en un archivo de texto llamado test.R como debajo de -
Demo en vivo
print ( myString)
Guarde el código anterior en un archivo test.R y ejecútelo en el símbolo del
sistema de Linux como se indica a continuación. Incluso si está utilizando
Windows u otro sistema, la sintaxis seguirá siendo la misma.
$ Rscript test.R
Cuando ejecutamos el programa anterior, produce el siguiente resultado.
[1] "Hello, World!"
Comentarios
Los comentarios son como texto de ayuda en su programa R y el intérprete los
ignora al ejecutar su programa real. El comentario único se escribe usando #
al comienzo de la declaración de la siguiente manera:
# My first program in R Programming
R no admite comentarios de varias líneas, pero puede realizar un truco que es
algo de la siguiente manera:
Demo en vivo
if(FALSE) {
"This is a demo for multi-line comments and it should be
put inside either a
single OR double quote"
}
R - Tipos de datos
En general, al programar en cualquier lenguaje de programación, debe usar
varias variables para almacenar información diversa. Las variables no son más
que ubicaciones de memoria reservadas para almacenar valores. Esto
significa que, cuando crea una variable, reserva algo de espacio en la
memoria.
Es posible que desee almacenar información de varios tipos de datos como
caracteres, caracteres anchos, enteros, coma flotante, doble coma flotante,
booleano, etc. Según el tipo de datos de una variable, el sistema operativo
asigna memoria y decide qué se puede almacenar en el memoria reservada
A diferencia de otros lenguajes de programación como C y Java en R, las
variables no se declaran como algún tipo de datos. Las variables se asignan
con objetos R y el tipo de datos del objeto R se convierte en el tipo de datos
de la variable. Hay muchos tipos de objetos R. Los que se usan con frecuencia
son:
Vectores
Liza
Matrices
Matrices
Factores
Marcos de datos
El más simple de estos objetos es el objeto vector y existen seis tipos de
datos de estos vectores atómicos, también denominados seis clases de
vectores. Los otros objetos R se basan en los vectores atómicos.
v <- TRUE
print(class(v))
v <- 23.5
print(class(v))
v <- 2L
print(class(v))
v <- 2+5i
print(class(v))
v <- "TRUE"
print(class(v))
v <- charToRaw("Hello")
print(class(v))
Vectores
Cuando desee crear un vector con más de un elemento, debe usar la
función c () , que significa combinar los elementos en un vector.
Demo en vivo
# Create a vector.
apple <- c('red','green',"yellow")
print(apple)
Liza
Una lista es un objeto R que puede contener muchos tipos diferentes de
elementos dentro de él, como vectores, funciones e incluso otra lista dentro de
él.
Demo en vivo
# Create a list.
list1 <- list(c(2,5,3),21.3,sin)
[[2]]
[1] 21.3
[[3]]
function (x) .Primitive("sin")
Matrices
Una matriz es un conjunto de datos rectangular bidimensional. Se puede crear
utilizando una entrada vectorial para la función de matriz.
Demo en vivo
# Create a matrix.
M = matrix( c('a','a','b','c','b','a'), nrow = 2, ncol = 3,
byrow = TRUE)
print(M)
Matrices
Si bien las matrices se limitan a dos dimensiones, las matrices pueden tener
cualquier cantidad de dimensiones. La función de matriz toma un atributo
tenue que crea el número requerido de dimensión. En el siguiente ejemplo
creamos una matriz con dos elementos que son matrices de 3x3 cada una.
Demo en vivo
# Create an array.
a <- array(c('green','yellow'),dim = c(3,3,2))
print(a)
Cuando ejecutamos el código anterior, produce el siguiente resultado:
, , 1
, , 2
Factores
Los factores son los objetos r que se crean usando un vector. Almacena el
vector junto con los distintos valores de los elementos en el vector como
etiquetas. Las etiquetas son siempre caracteres independientemente de si son
numéricos o de caracteres o booleanos, etc. en el vector de entrada. Son
útiles en el modelado estadístico.
Los factores se crean utilizando la función factor
() . Las funciones nlevels dan la cuenta de niveles.
Demo en vivo
# Create a vector.
apple_colors <-
c('green','green','yellow','red','red','red','green')
Marcos de datos
Los marcos de datos son objetos de datos tabulares. A diferencia de una
matriz en el marco de datos, cada columna puede contener diferentes modos
de datos. La primera columna puede ser numérica, mientras que la segunda
columna puede ser de carácter y la tercera columna puede ser lógica. Es una
lista de vectores de igual longitud.
Los marcos de datos se crean utilizando la función data.frame () .
Demo en vivo
válido Puede comenzar con un punto (.) Pero el punto (.) No debe ir
.var_name,
seguido de un número.
nombre var.
Asignación Variable
A las variables se les pueden asignar valores usando el operador hacia la
izquierda, hacia la derecha e igual a. Los valores de las variables se pueden
imprimir utilizando la función print () o cat () . La función cat () combina
múltiples elementos en una salida de impresión continua.
Demo en vivo
print(var.1)
cat ("var.1 is ", var.1 ,"\n")
cat ("var.2 is ", var.2 ,"\n")
cat ("var.3 is ", var.3 ,"\n")
Cuando ejecutamos el código anterior, produce el siguiente resultado:
[1] 0 1 2 3
var.1 is 0 1 2 3
var.2 is learn R
var.3 is 1 1
Nota - El vector c (VERDADERO, 1) tiene una mezcla de clase lógica y
numérica. Entonces, la clase lógica se coacciona a la clase numérica haciendo
VERDADERO como 1.
Tipo de datos de una variable
En R, una variable en sí misma no se declara de ningún tipo de datos, sino
que obtiene el tipo de datos del objeto R asignado a ella. Por lo tanto, R se
llama un lenguaje de tipo dinámico, lo que significa que podemos cambiar el
tipo de datos de una variable de la misma variable una y otra vez cuando lo
usamos en un programa.
Demo en vivo
Encontrar variables
Para conocer todas las variables actualmente disponibles en el espacio de
trabajo, utilizamos la función ls () . Además, la función ls () puede usar
patrones para hacer coincidir los nombres de las variables.
Demo en vivo
print(ls())
Cuando ejecutamos el código anterior, produce el siguiente resultado:
[1] "my var" "my_new_var" "my_var" "var.1"
[5] "var.2" "var.3" "var.name" "var_name2."
[9] "var_x" "varname"
Nota : es una salida de muestra que depende de qué variables se declaren en
su entorno.
La función ls () puede usar patrones para hacer coincidir los nombres de las
variables.
Demo en vivo
print(ls(all.name = TRUE))
Cuando ejecutamos el código anterior, produce el siguiente resultado:
[1] ".cars" ".Random.seed" ".var_name" ".varname"
".varname2"
[6] "my var" "my_new_var" "my_var" "var.1"
"var.2"
[11]"var.3" "var.name" "var_name2." "var_x"
Eliminar variables
Las variables se pueden eliminar utilizando la función rm () . A continuación
eliminamos la variable var.3. Al imprimir, se arroja el valor de la variable error.
Demo en vivo
rm(var.3)
print(var.3)
rm(list = ls())
print(ls())
Cuando ejecutamos el código anterior, produce el siguiente resultado:
character(0)
R - Operadores
Un operador es un símbolo que le dice al compilador que realice
manipulaciones matemáticas o lógicas específicas. El lenguaje R es rico en
operadores integrados y proporciona los siguientes tipos de operadores.
Tipos de operadores
Tenemos los siguientes tipos de operadores en programación R:
Operadores aritméticos
Operadores relacionales
Operadores logicos
Operadores de Asignación
Operadores Misceláneos
Operadores aritméticos
La siguiente tabla muestra los operadores aritméticos compatibles con el
lenguaje R. Los operadores actúan sobre cada elemento del vector.
v <- c( 2,5.5,6)
t <- c(8, 3, 4)
print(v+t)
v <- c( 2,5.5,6)
t <- c(8, 3, 4)
print(v-t)
v <- c( 2,5.5,6)
t <- c(8, 3, 4)
print(v*t)
v <- c( 2,5.5,6)
t <- c(8, 3, 4)
print(v/t)
Operadores relacionales
La siguiente tabla muestra los operadores relacionales compatibles con el
lenguaje R. Cada elemento del primer vector se compara con el elemento
correspondiente del segundo vector. El resultado de la comparación es un
valor booleano.
== Demo en vivo
!= Demo en vivo
Operadores logicos
La siguiente tabla muestra los operadores lógicos compatibles con el lenguaje
R. Es aplicable solo a vectores de tipo lógico, numérico o complejo. Todos los
números mayores que 1 se consideran como valor lógico VERDADERO.
Cada elemento del primer vector se compara con el elemento correspondiente
del segundo vector. El resultado de la comparación es un valor booleano.
Y Demo en vivo
Se llama elemento lógico Y operador
AND. Combina cada elemento del primer
vector con el elemento correspondiente del v <- c(3,1,TRUE,2+3i)
segundo vector y da una salida t <- c(4,1,FALSE,2+3i)
VERDADERO si ambos elementos son print(v&t)
VERDADEROS.
produce el siguiente resultado:
[1] TRUE TRUE FALSE TRUE
El | Demo en vivo
Se llama operador OR lógico por
elementos. Combina cada elemento del
primer vector con el elemento v <- c(3,0,TRUE,2+2i)
correspondiente del segundo vector y da t <- c(4,0,FALSE,2+3i)
print(v|t)
una salida VERDADERO si uno de los
elementos es VERDADERO. produce el siguiente resultado:
[1] TRUE FALSE TRUE TRUE
! Demo en vivo
Se llama operador lógico NO. Toma cada
elemento del vector y le da el valor lógico v <- c(3,0,TRUE,2+2i)
print(!v)
opuesto.
produce el siguiente resultado:
[1] FALSE TRUE FALSE FALSE
Operadores de Asignación
Estos operadores se utilizan para asignar valores a los vectores.
c(3,1,TRUE,2+3i) -> v1
->
c(3,1,TRUE,2+3i) ->> v2
o print(v1)
print(v2)
- >>
produce el siguiente resultado:
[1] 3+0i 1+0i 1+0i 2+3i
[1] 3+0i 1+0i 1+0i 2+3i
Operadores Misceláneos
Estos operadores están acostumbrados a fines específicos y no a cálculos
matemáticos o lógicos generales.
% *% Demo en vivo
Este
operador se M = matrix( c(2,6,5,1,10,4), nrow = 2,ncol = 3,byrow =
utiliza para TRUE)
multiplicar t = M %*% t(M)
print(t)
una matriz
con su produce el siguiente resultado:
transposición.
[,1] [,2]
[1,] 65 82
[2,] 82 117
R - Toma de decisiones
Las estructuras de toma de decisiones requieren que el programador
especifique una o más condiciones para ser evaluadas o probadas por el
programa, junto con una declaración o declaraciones que se ejecutarán si se
determina que la condición es verdadera y, opcionalmente, otras
declaraciones que se ejecutarán si la condición se determina para ser falsa .
A continuación se presenta la forma general de una estructura de toma de
decisiones típica que se encuentra en la mayoría de los lenguajes de
programación:
R proporciona los siguientes tipos de declaraciones de toma de
decisiones. Haga clic en los siguientes enlaces para verificar sus detalles.
No Declaración y descripción
Señor.
1 si la declaración
Una instrucción if puede ser seguida por una instrucción else opcional , que se
ejecuta cuando la expresión booleana es falsa.
3 declaración de cambio
Una declaración de cambio permite que una variable sea probada para la
igualdad contra una lista de valores.
R - Bucles
Puede haber una situación en la que necesite ejecutar un bloque de código
varias veces. En general, las declaraciones se ejecutan secuencialmente. La
primera instrucción en una función se ejecuta primero, seguida de la segunda,
y así sucesivamente.
Los lenguajes de programación proporcionan diversas estructuras de control
que permiten rutas de ejecución más complicadas.
Una declaración de bucle nos permite ejecutar una declaración o grupo de
declaraciones varias veces y la siguiente es la forma general de una
declaración de bucle en la mayoría de los lenguajes de programación:
1 repetir bucle
2 mientras bucle
3 en bucle
Como una declaración while, excepto que prueba la condición al final del cuerpo
del bucle.
1 declaración de ruptura
2 Siguiente declaración
R - Funciones
Una función es un conjunto de declaraciones organizadas juntas para realizar
una tarea específica. R tiene una gran cantidad de funciones integradas y el
usuario puede crear sus propias funciones.
En R, una función es un objeto, por lo que el intérprete de R puede pasar el
control a la función, junto con los argumentos que pueden ser necesarios para
que la función realice las acciones.
La función a su vez realiza su tarea y devuelve el control al intérprete, así
como cualquier resultado que pueda almacenarse en otros objetos.
Definición de función
Se crea una función R utilizando la función de palabra clave . La sintaxis
básica de una definición de función R es la siguiente:
function_name <- function(arg_1, arg_2, ...) {
Function body
}
Componentes de funciones
Las diferentes partes de una función son:
Nombre de la función : este es el nombre real de la función. Se almacena en el
entorno R como un objeto con este nombre.
Argumentos : un argumento es un marcador de posición. Cuando se invoca una
función, pasa un valor al argumento. Los argumentos son opcionales; es decir,
una función puede no contener argumentos. También los argumentos pueden
tener valores predeterminados.
Cuerpo de la función: el cuerpo de la función contiene una colección de
declaraciones que define lo que hace la función.
Valor de retorno: el valor de retorno de una función es la última expresión en el
cuerpo de la función que se evaluará.
R tiene muchas funciones integradas a las que se puede llamar directamente
en el programa sin definirlas primero. También podemos crear y utilizar
nuestras propias funciones a que se refiere como definidos por el
usuario funciones.
Función incorporada
Ejemplos simples de funciones integradas son seq () , mean () , max () , sum
(x) y paste (...) etc. Son directamente llamados por los programas escritos por
el usuario. Puede referirse a las funciones R más utilizadas.
Demo en vivo
Demo en vivo
Los siguientes ejemplos aclaran las reglas sobre la creación de una cadena en
R.
Demo en vivo
Demo en vivo
Manipulación de cuerdas
Concatenación de cadenas - función paste ()
Sintaxis
Ejemplo
Demo en vivo
a <- "Hello"
b <- 'How'
c <- "are you? "
print(paste(a,b,c))
Sintaxis
Ejemplo
Demo en vivo
Sintaxis
Ejemplo
Demo en vivo
Sintaxis
Ejemplo
Demo en vivo
Sintaxis
Ejemplo
Demo en vivo
# Extract characters from 5th to 7th position.
result <- substring("Extract", 5, 7)
print(result)
Cuando ejecutamos el código anterior, produce el siguiente resultado:
[1] "act"
R - Vectores
Los vectores son los objetos de datos R más básicos y hay seis tipos de
vectores atómicos. Son lógicos, enteros, dobles, complejos, de carácter y sin
formato.
Creación de vectores
Vector de elemento único
Manipulación de vectores
Aritmética vectorial
# Vector addition.
add.result <- v1+v2
print(add.result)
# Vector subtraction.
sub.result <- v1-v2
print(sub.result)
# Vector multiplication.
multi.result <- v1*v2
print(multi.result)
# Vector division.
divi.result <- v1/v2
print(divi.result)
Cuando ejecutamos el código anterior, produce el siguiente resultado:
[1] 7 19 4 13 1 13
[1] -1 -3 4 -3 -1 9
[1] 12 88 0 40 0 22
[1] 0.7500000 0.7272727 Inf 0.6250000 0.0000000
5.5000000
v1 <- c(3,8,4,5,0,11)
v2 <- c(4,11)
# V2 becomes c(4,11,4,11,4,11)
[[2]]
[1] "Green"
[[3]]
[1] 21 32 11
[[4]]
[1] TRUE
[[5]]
[1] 51.23
[[6]]
[1] 119.1
Elementos de la lista de nombres
Los elementos de la lista pueden tener nombres y se puede acceder a ellos
utilizando estos nombres.
Demo en vivo
$A_Matrix
[,1] [,2] [,3]
[1,] 3 5 -2
[2,] 9 1 8
$A_Inner_list
$A_Inner_list[[1]]
[1] "green"
$A_Inner_list[[2]]
[1] 12.3
$A_Inner_list
$A_Inner_list[[1]]
[1] "green"
$A_Inner_list[[2]]
[1] 12.3
$<NA>
NULL
Fusionar listas
Puede combinar muchas listas en una lista colocando todas las listas dentro
de una función list ().
Demo en vivo
[[2]]
[1] 2
[[3]]
[1] 3
[[4]]
[1] "Sun"
[[5]]
[1] "Mon"
[[6]]
[1] "Tue"
# Create lists.
list1 <- list(1:5)
print(list1)
list2 <-list(10:14)
print(list2)
print(v1)
print(v2)
[[1]]
[1] 10 11 12 13 14
[1] 1 2 3 4 5
[1] 10 11 12 13 14
[1] 11 13 15 17 19
R - Matrices
Las matrices son los objetos R en los que los elementos están dispuestos en
un diseño rectangular bidimensional. Contienen elementos de los mismos
tipos atómicos. Aunque podemos crear una matriz que contenga solo
caracteres o solo valores lógicos, no son de mucha utilidad. Utilizamos
matrices que contienen elementos numéricos para usar en cálculos
matemáticos.
Se crea una matriz utilizando la función matriz () .
Sintaxis
Ejemplo
Cálculos matriciales
Se realizan varias operaciones matemáticas en las matrices utilizando los
operadores R. El resultado de la operación también es una matriz.
Las dimensiones (número de filas y columnas) deben ser las mismas para las
matrices involucradas en la operación.
Demo en vivo
# Create two 2x3 matrices.
matrix1 <- matrix(c(3, 9, -1, 4, 2, 6), nrow = 2)
print(matrix1)
Demo en vivo
Ejemplo
El siguiente ejemplo crea una matriz de dos matrices de 3x3 cada una con 3
filas y 3 columnas.
Demo en vivo
, , 2
[,1] [,2] [,3]
[1,] 5 10 13
[2,] 9 11 14
[3,] 3 12 15
, , Matrix2
# Print the element in the 1st row and 3rd column of the 1st
matrix.
print(result[1,3,1])
Sintaxis
apply(x, margin, fun)
La siguiente es la descripción de los parámetros utilizados:
x es una matriz.
margen es el nombre del conjunto de datos utilizado.
diversión es la función que se aplicará a través de los elementos de la matriz.
Ejemplo
# Use apply to calculate the sum of the rows across all the
matrices.
result <- apply(new.array, c(1), sum)
print(result)
Cuando ejecutamos el código anterior, produce el siguiente resultado:
, , 1
[1] 56 68 60
R - Factores
Los factores son los objetos de datos que se utilizan para clasificar los datos y
almacenarlos como niveles. Pueden almacenar cadenas y enteros. Son útiles
en las columnas que tienen un número limitado de valores únicos. Como
"Masculino", "Femenino" y Verdadero, Falso, etc. Son útiles en el análisis de
datos para el modelado estadístico.
Los factores se crean utilizando la función factor () tomando un vector como
entrada.
Ejemplo
Demo en vivo
print(data)
print(is.factor(data))
print(factor_data)
print(is.factor(factor_data))
Cuando ejecutamos el código anterior, produce el siguiente resultado:
[1] "East" "West" "East" "North" "North" "East" "West"
"West" "West" "East" "North"
[1] FALSE
[1] East West East North North East West West West
East North
Levels: East North West
[1] TRUE
Sintaxis
gl(n, k, labels)
La siguiente es la descripción de los parámetros utilizados:
n es un número entero que da el número de niveles.
k es un número entero que da el número de repeticiones.
etiquetas es un vector de etiquetas para los niveles de factores resultantes.
Ejemplo
Demo en vivo
start_date = as.Date(c("2012-01-01","2013-09-23","2014-11-
15","2014-05-11",
"2015-03-27")),
stringsAsFactors = FALSE
)
# Extract Specific columns.
result <- data.frame(emp.data$emp_name,emp.data$salary)
print(result)
# Extract 3rd and 5th row with 2nd and 4th column.
result <- emp.data[c(3,5),c(2,4)]
print(result)
Añadir columna
.libPaths()
Cuando ejecutamos el código anterior, produce el siguiente resultado. Puede
variar según la configuración local de su PC.
[2] "C:/Program Files/R/R-3.2.2/library"
library()
Cuando ejecutamos el código anterior, produce el siguiente resultado. Puede
variar según la configuración local de su PC.
Packages in library ‘C:/Program Files/R/R-3.2.2/library’:
search()
Cuando ejecutamos el código anterior, produce el siguiente resultado. Puede
variar según la configuración local de su PC.
[1] ".GlobalEnv" "package:stats"
"package:graphics"
[4] "package:grDevices" "package:utils"
"package:datasets"
[7] "package:methods" "Autoloads" "package:base"
Instalar un nuevo paquete
Hay dos formas de agregar nuevos paquetes R. Uno está instalando
directamente desde el directorio CRAN y otro está descargando el paquete a
su sistema local e instalándolo manualmente.
# Print a header.
cat("# # # # The First data frame\n")
# Print a header.
cat("# # # The Second data frame\n")
# Print a header.
cat("# # # The combined data frame\n")
library(MASS)
merged.Pima <- merge(x = Pima.te, y = Pima.tr,
by.x = c("bp", "bmi"),
by.y = c("bp", "bmi")
)
print(merged.Pima)
nrow(merged.Pima)
Fusión y Fundición
Uno de los aspectos más interesantes de la programación de R es cambiar la
forma de los datos en múltiples pasos para obtener la forma deseada. Las
funciones utilizadas para hacer esto se llaman melt () y cast () .
Consideramos el conjunto de datos llamado naves presentes en la biblioteca
llamada "MASA".
Demo en vivo
library(MASS)
print(ships)
print(is.data.frame(data))
print(ncol(data))
print(nrow(data))
Sintaxis
writeBin(object, con)
readBin(con, what, n )
La siguiente es la descripción de los parámetros utilizados:
con es el objeto de conexión para leer o escribir el archivo binario.
objeto es el archivo binario que se escribirá.
¿Cuál es el modo como carácter, entero, etc., que representa los bytes a leer?
n es el número de bytes a leer del archivo binario.
Ejemplo
# Read the values from 4th byte to 8th byte which represents
"cyl".
cyldata = bindata[4:8]
print(cyldata)
# Read the values form 9th byte to 13th byte which represents
"am".
amdata = bindata[9:13]
print(amdata)
# Read the values form 9th byte to 13th byte which represents
"gear".
geardata = bindata[14:18]
print(geardata)
# Combine all the read values to a dat frame.
finaldata = cbind(cyldata, amdata, geardata)
colnames(finaldata) = column.names
print(finaldata)
[1] 6 6 4 6 8
[1] 1 1 1 0 0
[1] 4 4 4 3 3
cyl am gear
[1,] 6 1 4
[2,] 6 1 4
[3,] 4 1 4
[4,] 6 0 3
[5,] 8 0 3
Como podemos ver, recuperamos los datos originales al leer el archivo binario
en R.
R - Archivos XML
XML es un formato de archivo que comparte tanto el formato de archivo como
los datos en la World Wide Web, las intranets y otros lugares que utilizan texto
ASCII estándar. Significa Lenguaje de marcado extensible (XML). Similar al
HTML, contiene etiquetas de marcado. Pero a diferencia del HTML donde la
etiqueta de marcado describe la estructura de la página, en xml las etiquetas
de marcado describen el significado de los datos contenidos en el archivo.
Puede leer un archivo xml en R utilizando el paquete "XML". Este paquete se
puede instalar con el siguiente comando.
install.packages("XML")
<EMPLOYEE>
<ID>2</ID>
<NAME>Dan</NAME>
<SALARY>515.2</SALARY>
<STARTDATE>9/23/2013</STARTDATE>
<DEPT>Operations</DEPT>
</EMPLOYEE>
<EMPLOYEE>
<ID>3</ID>
<NAME>Michelle</NAME>
<SALARY>611</SALARY>
<STARTDATE>11/15/2014</STARTDATE>
<DEPT>IT</DEPT>
</EMPLOYEE>
<EMPLOYEE>
<ID>4</ID>
<NAME>Ryan</NAME>
<SALARY>729</SALARY>
<STARTDATE>5/11/2014</STARTDATE>
<DEPT>HR</DEPT>
</EMPLOYEE>
<EMPLOYEE>
<ID>5</ID>
<NAME>Gary</NAME>
<SALARY>843.25</SALARY>
<STARTDATE>3/27/2015</STARTDATE>
<DEPT>Finance</DEPT>
</EMPLOYEE>
<EMPLOYEE>
<ID>6</ID>
<NAME>Nina</NAME>
<SALARY>578</SALARY>
<STARTDATE>5/21/2013</STARTDATE>
<DEPT>IT</DEPT>
</EMPLOYEE>
<EMPLOYEE>
<ID>7</ID>
<NAME>Simon</NAME>
<SALARY>632.8</SALARY>
<STARTDATE>7/30/2013</STARTDATE>
<DEPT>Operations</DEPT>
</EMPLOYEE>
<EMPLOYEE>
<ID>8</ID>
<NAME>Guru</NAME>
<SALARY>722.5</SALARY>
<STARTDATE>6/17/2014</STARTDATE>
<DEPT>Finance</DEPT>
</EMPLOYEE>
</RECORDS>
2
Dan
515.2
9/23/2013
Operations
3
Michelle
611
11/15/2014
IT
4
Ryan
729
5/11/2014
HR
5
Gary
843.25
3/27/2015
Finance
6
Nina
578
5/21/2013
IT
7
Simon
632.8
7/30/2013
Operations
8
Guru
722.5
6/17/2014
Finance
attr(,"class")
[1] "XMLInternalNodeList" "XMLNodeList"
R - Archivos JSON
El archivo JSON almacena datos como texto en formato legible para
humanos. Json significa JavaScript Object Notation. R puede leer archivos
JSON utilizando el paquete rjson.
"Salary":["623.3","515.2","611","729","843.25","578","632.8",
"722.5" ],
"StartDate":[
"1/1/2012","9/23/2013","11/15/2014","5/11/2014","3/27/2015","
5/21/2013",
"7/30/2013","6/17/2014"],
"Dept":[
"IT","Operations","IT","HR","Finance","IT","Operations","Fina
nce"]
}
$Name
[1] "Rick" "Dan" "Michelle" "Ryan" "Gary"
"Nina" "Simon" "Guru"
$Salary
[1] "623.3" "515.2" "611" "729" "843.25" "578"
"632.8" "722.5"
$StartDate
[1] "1/1/2012" "9/23/2013" "11/15/2014" "5/11/2014"
"3/27/2015" "5/21/2013"
"7/30/2013" "6/17/2014"
$Dept
[1] "IT" "Operations" "IT" "HR"
"Finance" "IT"
"Operations" "Finance"
Convertir JSON a un marco de datos
Podemos convertir los datos extraídos arriba en un marco de datos R para su
posterior análisis utilizando la función as.data.frame () .
# Load the package required to read JSON files.
library("rjson")
print(json_data_frame)
Cuando ejecutamos el código anterior, produce el siguiente resultado:
id, name, salary, start_date, dept
1 1 Rick 623.30 2012-01-01 IT
2 2 Dan 515.20 2013-09-23 Operations
3 3 Michelle 611.00 2014-11-15 IT
4 4 Ryan 729.00 2014-05-11 HR
5 NA Gary 843.25 2015-03-27 Finance
6 6 Nina 578.00 2013-05-21 IT
7 7 Simon 632.80 2013-07-30 Operations
8 8 Guru 722.50 2014-06-17 Finance
R - Datos web
Muchos sitios web proporcionan datos para el consumo de sus usuarios. Por
ejemplo, la Organización Mundial de la Salud (OMS) proporciona informes
sobre información médica y de salud en forma de archivos CSV, txt y
XML. Mediante el uso de programas R, podemos extraer mediante
programación datos específicos de dichos sitios web. Algunos paquetes en R
que se utilizan para desechar datos de la web son: "RCurl", XML "y" stringr ".
Se utilizan para conectarse a las URL, identificar los enlaces necesarios para
los archivos y descargarlos al entorno local.
Instalar paquetes R
Los siguientes paquetes son necesarios para procesar las URL y los enlaces a
los archivos. Si no están disponibles en su entorno R, puede instalarlos
utilizando los siguientes comandos.
install.packages("RCurl")
install.packages("XML")
install.packages("stringr")
install.packages("plyr")
Ejemplo
Utilizaremos la función getHTMLLinks () para recopilar las URL de los
archivos. Luego usaremos la función download.file () para guardar los
archivos en el sistema local. Como aplicaremos el mismo código una y otra
vez para múltiples archivos, crearemos una función que se llamará varias
veces. Los nombres de archivo se pasan como parámetros en forma de un
objeto de lista R a esta función.
# Read the URL.
url <- "http://www.geos.ed.ac.uk/~weather/jcmb_ws/"
# Identify only the links which point to the JCMB 2015 files.
filenames <- links[str_detect(links, "JCMB_2015")]
# Now apply the l_ply function and save the files into the
current R working directory.
l_ply(filenames,downloadcsv,mainurl =
"http://www.geos.ed.ac.uk/~weather/jcmb_ws/")
Paquete RMySQL
R tiene un paquete incorporado llamado "RMySQL" que proporciona
conectividad nativa entre la base de datos MySql. Puede instalar este paquete
en el entorno R con el siguiente comando.
install.packages("RMySQL")
Conectando R a MySql
Una vez que el paquete está instalado, creamos un objeto de conexión en R
para conectarnos a la base de datos. Toma el nombre de usuario, la
contraseña, el nombre de la base de datos y el nombre del host como entrada.
# Create a connection Object to MySQL database.
# We will connect to the sampel database named "sakila" that
comes with MySql installation.
mysqlconnection = dbConnect(MySQL(), user = 'root', password
= '', dbname = 'sakila',
host = 'localhost')
R - Gráficos circulares
R El lenguaje de programación tiene numerosas bibliotecas para crear
cuadros y gráficos. Un gráfico circular es una representación de valores como
cortes de un círculo con diferentes colores. Las secciones se etiquetan y los
números correspondientes a cada sección también se representan en el
gráfico.
En R, el gráfico circular se crea utilizando la función de pastel () que toma
números positivos como entrada de vector. Los parámetros adicionales se
utilizan para controlar etiquetas, color, título, etc.
Sintaxis
Ejemplo
Se crea un gráfico circular muy simple utilizando solo el vector de entrada y las
etiquetas. El siguiente script creará y guardará el gráfico circular en el
directorio de trabajo actual de R.
Demo en vivo
Ejemplo
piepercent<- round(100*x/sum(x), 1)
Sintaxis
Ejemplo
Sintaxis
Ejemplo
R - Histogramas
Un histograma representa las frecuencias de los valores de una variable
agrupada en rangos. El histograma es similar al chat de barra, pero la
diferencia es que agrupa los valores en rangos continuos. Cada barra en el
histograma representa la altura del número de valores presentes en ese
rango.
R crea histograma utilizando la función hist () . Esta función toma un vector
como entrada y utiliza algunos parámetros más para trazar histogramas.
Sintaxis
Ejemplo
Sintaxis
Ejemplo
Ejemplo
Demo en vivo
R - Gráficos de dispersión
Los diagramas de dispersión muestran muchos puntos trazados en el plano
cartesiano. Cada punto representa los valores de dos variables. Se elige una
variable en el eje horizontal y otra en el eje vertical.
El diagrama de dispersión simple se crea utilizando la función plot () .
Sintaxis
Ejemplo
# Plot the chart for cars with weight between 2.5 to 5 and
mileage between 15 and 30.
plot(x = input$wt,y = input$mpg,
xlab = "Weight",
ylab = "Milage",
xlim = c(2.5,5),
ylim = c(15,30),
main = "Weight vs Milage"
)
Sintaxis
Ejemplo
Cada variable se empareja con cada una de las variables restantes. Se traza
un diagrama de dispersión para cada par.
Demo en vivo
pairs(~wt+mpg+disp+cyl,data = mtcars,
main = "Scatterplot Matrix")
Media
Se calcula tomando la suma de los valores y dividiéndolos con el número de
valores en una serie de datos.
La función mean () se usa para calcular esto en R.
Sintaxis
Ejemplo
Demo en vivo
# Create a vector.
x <- c(12,7,3,4.2,18,2,54,-21,8,-5)
# Find Mean.
result.mean <- mean(x)
print(result.mean)
Cuando ejecutamos el código anterior, produce el siguiente resultado:
[1] 8.22
# Find Mean.
result.mean <- mean(x,trim = 0.3)
print(result.mean)
Cuando ejecutamos el código anterior, produce el siguiente resultado:
[1] 5.55
Aplicando la opción NA
Si faltan valores, la función media devuelve NA.
Para eliminar los valores faltantes del cálculo, use na.rm = TRUE. lo que
significa eliminar los valores de NA.
Demo en vivo
# Create a vector.
x <- c(12,7,3,4.2,18,2,54,-21,8,-5,NA)
# Find mean.
result.mean <- mean(x)
print(result.mean)
Mediana
El valor medio más alto en una serie de datos se llama mediana. La
función mediana () se usa en R para calcular este valor.
Sintaxis
Ejemplo
Demo en vivo
Modo
El modo es el valor que tiene el mayor número de ocurrencias en un conjunto
de datos. A diferencia de la media y la mediana, el modo puede tener datos
numéricos y de caracteres.
R no tiene una función estándar incorporada para calcular el modo. Entonces
creamos una función de usuario para calcular el modo de un conjunto de datos
en R. Esta función toma el vector como entrada y da el valor del modo como
salida.
Ejemplo
Demo en vivo
# Values of weight.
63, 81, 56, 91, 47, 57, 76, 72, 62, 48
Función lm ()
Esta función crea el modelo de relación entre el predictor y la variable de
respuesta.
Sintaxis
Demo en vivo
x <- c(151, 174, 138, 186, 128, 136, 179, 163, 152, 131)
y <- c(63, 81, 56, 91, 47, 57, 76, 72, 62, 48)
print(relation)
Cuando ejecutamos el código anterior, produce el siguiente resultado:
Call:
lm(formula = y ~ x)
Coefficients:
(Intercept) x
-38.4551 0.6746
Demo en vivo
x <- c(151, 174, 138, 186, 128, 136, 179, 163, 152, 131)
y <- c(63, 81, 56, 91, 47, 57, 76, 72, 62, 48)
print(summary(relation))
Cuando ejecutamos el código anterior, produce el siguiente resultado:
Call:
lm(formula = y ~ x)
Residuals:
Min 1Q Median 3Q Max
-6.3002 -1.6629 0.0412 1.8944 3.9775
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -38.45509 8.04901 -4.778 0.00139 **
x 0.67461 0.05191 12.997 1.16e-06 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’
1
Función predic ()
Sintaxis
Demo en vivo
Demo en vivo
R - Regresión múltiple
La regresión múltiple es una extensión de la regresión lineal en relación entre
más de dos variables. En una relación lineal simple tenemos un predictor y
una variable de respuesta, pero en regresión múltiple tenemos más de una
variable predictiva y una variable de respuesta.
La ecuación matemática general para la regresión múltiple es:
y = a + b1x1 + b2x2 +...bnxn
La siguiente es la descripción de los parámetros utilizados:
y es la variable de respuesta.
a, b1, b2 ... bn son los coeficientes.
x1, x2, ... xn son las variables predictoras.
Creamos el modelo de regresión usando la función lm () en R. El modelo
determina el valor de los coeficientes usando los datos de entrada. A
continuación, podemos predecir el valor de la variable de respuesta para un
conjunto dado de variables predictoras utilizando estos coeficientes.
Función lm ()
Esta función crea el modelo de relación entre el predictor y la variable de
respuesta.
Sintaxis
Ejemplo
Los datos de entrada
Demo en vivo
a <- coef(model)[1]
print(a)
print(Xdisp)
print(Xhp)
print(Xwt)
Coefficients:
(Intercept) disp hp wt
37.105505 -0.000937 -0.031157 -3.800891
Sintaxis
Ejemplo
print(head(input))
Cuando ejecutamos el código anterior, produce el siguiente resultado:
am cyl hp wt
Mazda RX4 1 6 110 2.620
Mazda RX4 Wag 1 6 110 2.875
Datsun 710 1 4 93 2.320
Hornet 4 Drive 0 6 110 3.215
Hornet Sportabout 0 8 175 3.440
Valiant 0 6 105 3.460
print(summary(am.data))
Cuando ejecutamos el código anterior, produce el siguiente resultado:
Call:
glm(formula = am ~ cyl + hp + wt, family = binomial, data =
input)
Deviance Residuals:
Min 1Q Median 3Q Max
-2.17272 -0.14907 -0.01464 0.14116 1.27641
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 19.70288 8.11637 2.428 0.0152 *
cyl 0.48760 1.07162 0.455 0.6491
hp 0.03259 0.01886 1.728 0.0840 .
wt -9.14947 4.15332 -2.203 0.0276 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’
1
Conclusión
R - Distribución normal
En una recopilación aleatoria de datos de fuentes independientes,
generalmente se observa que la distribución de datos es normal. Lo que
significa que, al trazar un gráfico con el valor de la variable en el eje horizontal
y el recuento de los valores en el eje vertical, obtenemos una curva en forma
de campana. El centro de la curva representa la media del conjunto de
datos. En el gráfico, el cincuenta por ciento de los valores se encuentran a la
izquierda de la media y el otro cincuenta por ciento a la derecha de la
gráfica. Esto se conoce como distribución normal en estadística.
R tiene cuatro funciones integradas para generar una distribución normal. Se
describen a continuación.
dnorm(x, mean, sd)
pnorm(x, mean, sd)
qnorm(p, mean, sd)
rnorm(n, mean, sd)
La siguiente es la descripción de los parámetros utilizados en las funciones
anteriores:
x es un vector de números.
p es un vector de probabilidades.
n es el número de observaciones (tamaño de muestra).
mean es el valor medio de los datos de la muestra. Su valor predeterminado es
cero.
SD es la desviación estándar. Su valor predeterminado es 1.
dnorm ()
Esta función proporciona la altura de la distribución de probabilidad en cada
punto para una desviación estándar y media dada.
Demo en vivo
plot(x,y)
print(x)
Cuando ejecutamos el código anterior, produce el siguiente resultado:
[1] 0.610116
qbinom ()
Esta función toma el valor de probabilidad y proporciona un número cuyo valor
acumulativo coincide con el valor de probabilidad.
Demo en vivo
print(x)
rbinom ()
Esta función genera el número requerido de valores aleatorios de probabilidad
dada de una muestra dada.
Demo en vivo
print(x)
Cuando ejecutamos el código anterior, produce el siguiente resultado:
[1] 58 61 59 66 55 60 61 67
R - Regresión de Poisson
La regresión de Poisson involucra modelos de regresión en los cuales la
variable de respuesta tiene la forma de conteos y no números
fraccionarios. Por ejemplo, el recuento del número de nacimientos o el número
de victorias en una serie de partidos de fútbol. También los valores de las
variables de respuesta siguen una distribución de Poisson.
La ecuación matemática general para la regresión de Poisson es:
log(y) = a + b1x1 + b2x2 + bnxn.....
La siguiente es la descripción de los parámetros utilizados:
y es la variable de respuesta.
un y b son los coeficientes numéricos.
x es la variable predictora.
La función utilizada para crear el modelo de regresión de Poisson es la
función glm () .
Sintaxis
Ejemplo
Deviance Residuals:
Min 1Q Median 3Q Max
-3.6871 -1.6503 -0.4269 1.1902 4.2616
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 3.69196 0.04541 81.302 < 2e-16 ***
woolB -0.20599 0.05157 -3.994 6.49e-05 ***
tensionM -0.32132 0.06027 -5.332 9.73e-08 ***
tensionH -0.51849 0.06396 -8.107 5.21e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’
1
R - Análisis de covarianza
Utilizamos el análisis de regresión para crear modelos que describen el efecto
de la variación en las variables predictoras sobre la variable de respuesta. A
veces, si tenemos una variable categórica con valores como Sí / No o
Masculino / Femenino, etc. El análisis de regresión simple proporciona
múltiples resultados para cada valor de la variable categórica. En tal
escenario, podemos estudiar el efecto de la variable categórica usándola junto
con la variable predictora y comparando las líneas de regresión para cada
nivel de la variable categórica. Tal análisis se denomina Análisis de
Covarianza también llamado ANCOVA .
Ejemplo
Considere el conjunto de datos R integrado mtcars. En él observamos que el
campo "am" representa el tipo de transmisión (automática o manual). Es una
variable categórica con valores 0 y 1. El valor de millas por galón (mpg) de un
automóvil también puede depender de él además del valor de la potencia en
caballos ("hp").
Estudiamos el efecto del valor de "am" en la regresión entre "mpg" y "hp". Se
realiza utilizando la función aov () seguida de la función anova () para
comparar las regresiones múltiples.
Análisis ANCOVA
Creamos un modelo de regresión tomando "hp" como variable predictiva y
"mpg" como variable de respuesta teniendo en cuenta la interacción entre
"am" y "hp".
Demo en vivo
Demo en vivo
Sintaxis
Ejemplo
Considere los detalles de la precipitación anual en un lugar a partir de enero
de 2012. Creamos un objeto de serie temporal R por un período de 12 meses
y lo graficamos.
Demo en vivo
c(655,1306.9,1323.4,1172.2,562.2,824,822.4,1265.5,799.6,1105.
6,1106.7,1337.8)
Sintaxis
La sintaxis básica para crear una prueba de mínimos cuadrados no lineal en R
es:
nls(formula, data, start)
La siguiente es la descripción de los parámetros utilizados:
La fórmula es una fórmula de modelo no lineal que incluye variables y
parámetros.
data es un marco de datos utilizado para evaluar las variables en la fórmula.
inicio es una lista con nombre o un vector numérico con nombre de las
estimaciones iniciales.
Ejemplo
Consideraremos un modelo no lineal con la suposición de valores iniciales de
sus coeficientes. A continuación, veremos cuáles son los intervalos de
confianza de estos valores asumidos para poder juzgar qué tan bien se
introducen estos valores en el modelo.
Entonces, consideremos la siguiente ecuación para este propósito:
a = b1*x^2+b2
Supongamos que los coeficientes iniciales son 1 y 3 y ajustamos estos valores
en la función nls ().
Demo en vivo
R - Árbol de decisión
El árbol de decisión es un gráfico para representar opciones y sus resultados
en forma de árbol. Los nodos en el gráfico representan un evento o elección y
los bordes del gráfico representan las reglas o condiciones de decisión. Se
utiliza principalmente en aplicaciones de Machine Learning y Data Mining que
utilizan R.
Ejemplos de uso de la decisión de la dirección son: predecir un correo
electrónico como spam o no spam, predecir un tumor es canceroso o predecir
un préstamo como un riesgo de crédito bueno o malo en función de los
factores en cada uno de ellos. En general, se crea un modelo con datos
observados, también llamados datos de entrenamiento. Luego, se utiliza un
conjunto de datos de validación para verificar y mejorar el modelo. R tiene
paquetes que se utilizan para crear y visualizar árboles de decisión. Para el
nuevo conjunto de variables predictoras, utilizamos este modelo para llegar a
una decisión sobre la categoría (sí / No, spam / no spam) de los datos.
El paquete R "party" se usa para crear árboles de decisión.
Instalar paquete R
Use el siguiente comando en la consola R para instalar el paquete. También
debe instalar los paquetes dependientes, si los hay.
install.packages("party")
El paquete "party" tiene la función ctree () que se usa para crear y analizar el
árbol de decisión.
Sintaxis
Ejemplo
as.Date, as.Date.numeric
Del árbol de decisión que se muestra arriba, podemos concluir que cualquier
persona cuyo puntaje de Lecturas es inferior a 38.3 y la edad es mayor de 6
no es un hablante nativo.
R - Bosque aleatorio
En el enfoque forestal aleatorio, se crea una gran cantidad de árboles de
decisión. Cada observación se alimenta a cada árbol de decisión. El resultado
más común para cada observación se utiliza como salida final. Se introduce
una nueva observación en todos los árboles y se vota por mayoría para cada
modelo de clasificación.
Se realiza una estimación de error para los casos que no se utilizaron al
construir el árbol. Eso se llama una estimación de error OOB (fuera de
bolsa) que se menciona como un porcentaje.
El paquete R "randomForest" se utiliza para crear bosques aleatorios.
Instalar paquete R
Use el siguiente comando en la consola R para instalar el paquete. También
debe instalar los paquetes dependientes, si los hay.
install.packages("randomForest)
El paquete "randomForest" tiene la función randomForest () que se usa para
crear y analizar bosques aleatorios.
Sintaxis
Ejemplo
Conclusión
Del bosque aleatorio que se muestra arriba, podemos concluir que el tamaño
del calzado y la puntuación son los factores importantes para decidir si alguien
es un hablante nativo o no. Además, el modelo tiene solo un 1% de error, lo
que significa que podemos predecir con un 99% de precisión.
R - Análisis de supervivencia
El análisis de supervivencia trata de predecir el momento en que ocurrirá un
evento específico. También se conoce como análisis de tiempo de falla o
análisis de tiempo hasta la muerte. Por ejemplo, predecir la cantidad de días
que una persona con cáncer sobrevivirá o predecir el momento en que un
sistema mecánico va a fallar.
El paquete R denominado supervivencia se utiliza para llevar a cabo análisis
de supervivencia. Este paquete contiene la función Surv () que toma los datos
de entrada como una fórmula R y crea un objeto de supervivencia entre las
variables elegidas para el análisis. Luego usamos la función survfit () para
crear una gráfica para el análisis.
Paquete de instalación
install.packages("survival")
Sintaxis
Ejemplo
Sintaxis
La función utilizada para realizar la prueba de chi-cuadrado es chisq.test () .
La sintaxis básica para crear una prueba de chi-cuadrado en R es:
chisq.test(data)
La siguiente es la descripción de los parámetros utilizados:
Los datos son los datos en forma de una tabla que contiene el valor de conteo de
las variables en la observación.
Ejemplo
Tomaremos los datos de Cars93 en la biblioteca "MASS" que representa las
ventas de diferentes modelos de automóviles en el año 1993.
Demo en vivo
library("MASS")
print(str(Cars93))
Cuando ejecutamos el código anterior, produce el siguiente resultado:
'data.frame': 93 obs. of 27 variables:
$ Manufacturer : Factor w/ 32 levels "Acura","Audi",..:
1 1 2 2 3 4 4 4 4 5 ...
$ Model : Factor w/ 93 levels
"100","190E","240",..: 49 56 9 1 6 24 54 74 73 35 ...
$ Type : Factor w/ 6 levels
"Compact","Large",..: 4 3 1 3 3 3 2 2 3 2 ...
$ Min.Price : num 12.9 29.2 25.9 30.8 23.7 14.2
19.9 22.6 26.3 33 ...
$ Price : num 15.9 33.9 29.1 37.7 30 15.7 20.8
23.7 26.3 34.7 ...
$ Max.Price : num 18.8 38.7 32.3 44.6 36.2 17.3
21.7 24.9 26.3 36.3 ...
$ MPG.city : int 25 18 20 19 22 22 19 16 19 16 ...
$ MPG.highway : int 31 25 26 26 30 31 28 25 27 25 ...
$ AirBags : Factor w/ 3 levels "Driver &
Passenger",..: 3 1 2 1 2 2 2 2 2 2 ...
$ DriveTrain : Factor w/ 3 levels "4WD","Front",..: 2
2 2 2 3 2 2 3 2 2 ...
$ Cylinders : Factor w/ 6 levels "3","4","5","6",..:
2 4 4 4 2 2 4 4 4 5 ...
$ EngineSize : num 1.8 3.2 2.8 2.8 3.5 2.2 3.8 5.7
3.8 4.9 ...
$ Horsepower : int 140 200 172 172 208 110 170 180
170 200 ...
$ RPM : int 6300 5500 5500 5500 5700 5200
4800 4000 4800 4100 ...
$ Rev.per.mile : int 2890 2335 2280 2535 2545 2565
1570 1320 1690 1510 ...
$ Man.trans.avail : Factor w/ 2 levels "No","Yes": 2 2 2 2
2 1 1 1 1 1 ...
$ Fuel.tank.capacity: num 13.2 18 16.9 21.1 21.1 16.4 18 23
18.8 18 ...
$ Passengers : int 5 5 5 6 4 6 6 6 5 6 ...
$ Length : int 177 195 180 193 186 189 200 216
198 206 ...
$ Wheelbase : int 102 115 102 106 109 105 111 116
108 114 ...
$ Width : int 68 71 67 70 69 69 74 78 73 73 ...
$ Turn.circle : int 37 38 37 37 39 41 42 45 41 43 ...
$ Rear.seat.room : num 26.5 30 28 31 27 28 30.5 30.5
26.5 35 ...
$ Luggage.room : int 11 15 14 17 13 16 17 21 14 18 ...
$ Weight : int 2705 3560 3375 3405 3640 2880
3470 4105 3495 3620 ...
$ Origin : Factor w/ 2 levels "USA","non-USA": 2
2 2 2 2 1 1 1 1 1 ...
$ Make : Factor w/ 93 levels "Acura
Integra",..: 1 2 4 3 5 6 7 9 8 10 ...
El resultado anterior muestra que el conjunto de datos tiene muchas variables
de Factor que pueden considerarse como variables categóricas. Para nuestro
modelo consideraremos las variables "AirBags" y "Type". Aquí nuestro objetivo
es encontrar una correlación significativa entre los tipos de automóviles
vendidos y el tipo de bolsas de aire que tiene. Si se observa una correlación,
podemos estimar qué tipos de automóviles pueden venderse mejor con qué
tipos de bolsas de aire.
Demo en vivo
data: car.data
X-squared = 33.001, df = 10, p-value = 0.0002723
Warning message:
In chisq.test(car.data) : Chi-squared approximation may be
incorrect
Conclusión
El resultado muestra el valor p de menos de 0.05 que indica una correlación
de cadena.