El lenguaje R es ampliamente utilizado en la actualidad por su capacidad para el análisis estadístico y la visualización de datos. Aquí te explico cómo se ocupa R en la actualidad y algunos de sus avances recientes.
Uso Actual de R
Análisis de Datos:
- Estadísticas Descriptivas: Resumen de datos mediante medidas como la media, mediana, moda, varianza y desviación estándar.
- Análisis Inferencial: Pruebas estadísticas como t-tests, ANOVA, regresión lineal y regresión logística.
Visualización de Datos:
- R es conocido por sus capacidades gráficas avanzadas. Paquetes como
ggplot2
permiten crear visualizaciones sofisticadas y personalizadas. shiny
permite crear aplicaciones web interactivas para explorar datos de forma dinámica.
- R es conocido por sus capacidades gráficas avanzadas. Paquetes como
Machine Learning:
- R se utiliza para implementar modelos de aprendizaje supervisado y no supervisado, como la regresión, clasificación, árboles de decisión, clustering y redes neuronales.
- Paquetes como
caret
,randomForest
, yxgboost
facilitan el desarrollo y la evaluación de modelos de machine learning.
Análisis de Series Temporales:
- R ofrece herramientas robustas para el análisis de series temporales, como
forecast
ytseries
. - Se utiliza para pronosticar datos financieros, meteorológicos y otros datos secuenciales.
- R ofrece herramientas robustas para el análisis de series temporales, como
Bioinformática:
- R se utiliza en biología computacional para el análisis de secuencias genómicas, expresión génica y otros datos biológicos.
- Paquetes como
Bioconductor
proporcionan herramientas específicas para análisis genómicos y proteómicos.
Econometría y Finanzas:
- R se aplica en el análisis de datos financieros, econometría y modelado financiero.
- Paquetes como
quantmod
,xts
, yzoo
son populares en esta área.
Avances Recientes
R 4.0 y 4.1:
- Mejoras en el rendimiento y nuevas funciones.
- Mejor manejo de cadenas y vectores.
Tidyverse:
- Conjunto de paquetes como
dplyr
,tidyr
,readr
,purrr
yggplot2
que facilitan la manipulación y visualización de datos. - Introducción de
dplyr 1.0.0
con nuevas funciones de programación y mejoras de rendimiento.
- Conjunto de paquetes como
Data.table:
- Paquete para manipulación de datos extremadamente rápido y eficiente, especialmente útil para grandes volúmenes de datos.
Shiny y RMarkdown:
shiny
sigue evolucionando, permitiendo la creación de aplicaciones web más rápidas y personalizables.RMarkdown
se utiliza para crear documentos dinámicos que pueden combinar código R, texto y gráficos.
Inteligencia Artificial:
- Integración con TensorFlow y Keras para deep learning.
- Nuevos paquetes y funciones para trabajar con modelos de IA.
RStudio IDE:
- RStudio ha lanzado versiones con mejoras en la interfaz, soporte para múltiples lenguajes y mejor integración con herramientas de desarrollo moderno.
- RStudio Connect facilita la publicación y gestión de aplicaciones Shiny, documentos RMarkdown y otros productos de datos.
Para instalar y usar R y RStudio, sigue los pasos a continuación. Esto incluye tanto la instalación de los programas como una introducción básica a su uso.
Instalación de R
Descargar R:
- Ve al sitio web oficial de R: CRAN (The Comprehensive R Archive Network).
- Selecciona tu sistema operativo (Windows, macOS, o Linux).
- Descarga el instalador correspondiente.
Instalar R:
- Ejecuta el archivo descargado.
- Sigue las instrucciones del instalador. Normalmente, puedes aceptar las configuraciones predeterminadas.
Instalación de RStudio
Descargar RStudio:
- Ve al sitio web oficial de RStudio: RStudio.
- Selecciona tu sistema operativo y descarga el instalador.
Instalar RStudio:
- Ejecuta el archivo descargado.
- Sigue las instrucciones del instalador.
Uso de R y RStudio
Abrir RStudio:
- Después de instalar R y RStudio, abre RStudio desde el menú de inicio o el icono en tu escritorio.
Interfaz de RStudio:
- Script Editor (Editor de Scripts): Aquí puedes escribir y guardar tu código R.
- Console (Consola): Aquí puedes ejecutar comandos R directamente.
- Environment/History: Aquí puedes ver las variables en tu entorno de trabajo y el historial de comandos ejecutados.
- Files/Plots/Packages/Help/Viewer: Aquí puedes gestionar tus archivos, ver gráficos, gestionar paquetes instalados, acceder a la ayuda, y más.
PRIMEROS PASOS EN RSTUDIO
RStudio es una GUI, Graphical user interface, para R programada en C#, multiplataforma (Windows, Linux y Mac). Que aún todos los entornos y asume la filosofía de las expresiones.
Para comenzar crearemos nuestro primer script, tenemos dos formas:
- · File->New File->R Script (Ctrl+Shift+N)
- · Atreves de la barra de herramientas
Comenzaremos a trabajar en nuestro primer script que por default tiene el nombre de untitled1, nosotros lo vamos a guardar con el nombre de Ejemplo_uno ; Para esto tenemos que indicarle a RStudio cual va ser nuestro espacio de trabajo,
El "espacio de trabajo" (o "workspace" en inglés) se refiere al entorno donde se almacenan todas las variables, funciones, datos y otros objetos que has creado o cargado durante tu sesión de R. Es básicamente la memoria actual de tu sesión de R
Guardamos nuestro script con las combinaciones de teclas Ctrl+Alt+S o Menu File->Sava All.
- · File->New File->R Script (Ctrl+Shift+N)
- · Atreves de la barra de herramientas
CONCEPTOS DE LENGUAJE
Cada lenguaje de programación tiene su sintaxis y elementos para guardar información; Una de las formas de guardar información durante la ejecución de un programa son las variables, son espacio de memoria que solicita el programa en ejecución para guardar información temporalmente, su nombre puede ser cualquiera, tenemos varios estilos para poder indicar una variable en el programa como son los siguientes.
- · VARIABLE.-todas las letras en mayúsculas.
- · Variable .-Que la palabra comience con mayúscula.
- · variable.- Todas las letras en minúscula
- · Variable1.- Que la palabra este acompañada de un indicador numérico.
- · Variable_uno.- Este compuesta utilizando el guion bajo para separar.
- · VariableUno.- utilizando el estilo CamelCase .
- · Var.- solo usando las tres primeras letras de la palabra para formar un prefijo.
- · Var1.- Usar el prefijo con un indicador numérico.
Tomemos en cuenta que los lenguajes de programación son sensibles al manejo de Mayúsculas y minúsculas, no es la misma variable “Variable” a “variable”, una está con mayúscula y la otra esta con minúscula.
Cuando ocupamos una variable para almacenar un dato o información, la asignación de valor se realiza de derecha a izquierda. Primero se realiza la operación y después se asigna el resultado a la variable, ejemplo.
· A=1, a la variable “A” se asigna el valor uno. · A=1+1, a la variable “A” se le asigna el resultado de la suma de dos números. · A=B+C, a la variable “A” se le asigna el resultado de la suma de dos variables. · A=A-A, a la variable “A” se la asigna el resultado de restar de su mismo valos, es decir, si “A” vale 1 el resultado de 1-1 es 0, por consecuente el valor final de “A” es 0.
Realizaremos el script Ejemplo_uno.
#uso de variables #para ejecur #uso de variables #para ejecutar cada línea presione Ctrl+Enter
A=20 #se declara la variable "A" y se asigna el valos 20 (Ctrl+Enter) B=5 #se declara la variable "B" y se asigna el valor 5 (Ctrl+Enter) res # variable que se ocupara para guardar el resultado de la operación
res=A+B #realizamos la suma de las variables "A+B" (Ctrl+Enter) res res=A-B #realizamos la resta de las variables "A+B" (Ctrl+Enter) res res=A*B #realizamos la multiplicacion de las variables "A+B" (Ctrl+Enter) res res=A/B #realizamos la divicion de las variables "A+B" (Ctrl+Enter) res res=A%%B #realizamos la modularidad de las variables "A+B" (Ctrl+Enter) res res=A^B #realizamos la potencia de las variable "A^B" (Ctrl+Enter) res res=sqrt(A) #realizamos la raiz cuadrada de las variable "A" (Ctrl+Enter) res ar cada linea precione Ctrl+Enter
Las operaciones matemáticas tienen jerarquía, tomemos nuestras precauciones a la hora de colocar una operación aritmética con más de un operador para obtener el resultado esperado. El operador con mayor prioridad es la suma, después la resta, en seguida la multiplicación y así sucesivamente, en la tabla que a continuación se presenta la prioridad es de arriba hacia bajo.
+ Suma – Resta * Multiplicación / División % Residuo ^ Potencia
El lenguaje de RStudio es flexible cuando hablamos de tipo de valor, es decir la clase de información que podemos almacenar en una variable, para conocer el tipo de valor de una variable utilizamos la función class. Realizaremos el script Ejemplo_dos.
#tipos de valor
#texto o cadena(strig) var="hola mundo" class(var)
#caracter var='1' class(var)
#numero var=1 class(var)
- · VARIABLE.-todas las letras en mayúsculas.
- · Variable .-Que la palabra comience con mayúscula.
- · variable.- Todas las letras en minúscula
- · Variable1.- Que la palabra este acompañada de un indicador numérico.
- · Variable_uno.- Este compuesta utilizando el guion bajo para separar.
- · VariableUno.- utilizando el estilo CamelCase .
- · Var.- solo usando las tres primeras letras de la palabra para formar un prefijo.
- · Var1.- Usar el prefijo con un indicador numérico.
+ | Suma |
– | Resta |
* | Multiplicación |
/ | División |
% | Residuo |
^ | Potencia |
COERCIÓN
En R es posible “forzar” (“coerce”) la conversión de una clase de datos en otra, mediante comandos de la forma as.class. ;Esto lo podemos utilizar cuando el tipo de dato no coincida con la información a procesar, ejemplo. Cuando los datos están guardados como texto , los mas comunes son los números y fechas que suelen guardar con formato de texto y al momento de realizar una búsqueda u operación se genera un conflicto de tipo de dato ocasionando información errónea.
Realizaremos el script Ejemplo_tres.
#forzar a una variable que cambie de tipo
#tipo caracter x="1" class(x)
#forzamos a numérico(integer) y=as.integer(x) y class(y)
#forzamos a carácter(character) z=as.character(y) class(z)
VECTORES NUMÉRICOS Y ALFANUMÉRICOS
Para poder manipular rápidamente un Tamayo de información moderado y organizada, tenemos los vectores donde podemos guardar información rápidamente. Se pueden agrupar varias variables de la misma clase para formar un vector mediante el comando c(). La asignación de un nombre de variable a dicho vector se realiza mediante el símbolo =. Así, podemos guardar las edades de 10 personas de una muestra en la variable edad mediante: edad = c(22, 34, 29, 25, 30, 33, 31, 27, 25, 25)
Como comando de asignación de nombres a vectores puede utilizarse además el símbolo <-: edad <- c(22, 34, 29, 25, 30, 33, 31, 27, 25, 25), o también el símbolo -> si bien en este caso debemos invertir la posición del nombre del vector y sus valores.
c(22, 34, 29, 25, 30, 33, 31, 27, 25, 25) -> edad
Podemos crear vectores alfanuméricos del mismo modo:
letras=c("a","b","c","d","e")
Si en un vector se combinan elementos de clase numeric y character el vector resultante es de clase character:
mezcla=c(1,2,3,"a","b","c")
LONGITUD DE UN VECTOR
La función length() devuelve la longitud (número de elementos) del vector:
x=c(1,4,5,2,4,5,4,3,2,2,3,2,2,4,4,5,5,6,6,7) length(x)
VALORES PERDIDOS
Los valores perdidos constituyen una clase particular de dato, que se codifica siempre como NA independientemente de que la variable sea numérica o alfanumérica. Con carácter general cualquier operación que involucre a un valor perdido dará como resultado también NA. A modo de ejemplo, si el vector peso recoge los pesos de 5 personas, habiéndose perdido el cuarto valor, se codificaría como:
peso=c(77,68,85,NA,73) Si pretendemos calcular el peso medio, obtenemos como resultado un valor perdido: mean(peso)
Si, en cualquier caso, deseamos calcular la media de los pesos efectivamente disponibles, utilizaríamos la opción eliminar valores perdidos o NA remove que se declara como na.rm=TRUE.
mean(peso, na.rm=TRUE)
Una segunda clase de valores “perdidos”" en R corresponden a cálculos numéricos cuyos resultados son indefinidos, como por ejemplo 0000 o log(−1)log(−1). En este caso, el resultado que devuelve R es NaN (Not a Number), que a todos los efectos es considerado como un valor perdido:
ACCESO A LOS COMPONENTES DE UN VECTOR
Es posible acceder al valor que ocupa la posición k dentro de un vector x refiriéndonos a él como x[k]. Así, podemos ver el contenido del tercer y quinto valores del vector edad:
Realizaremos el script Ejemplo_cuatro.
#acceso a elementos de un vector edad = c(22, 34, 29, 25, 30, 33, 31, 27, 25, 25) edad[3] edad[5]
Podemos acceder también simultáneamente a varios valores dentro de un vector. Por ejemplo, si deseamos ver del segundo al quinto de los valores observados en la variable edad:
edad[2:5]
Y si quisiéramos ver sólo los valores primero, tercero y séptimo:
edad[c(1,3,7)]
SELECCIÓN CONDICIONADA DE VALORES DE UNA VARIABLE
La función which() nos da las posiciones, dentro de un vector, de los valores que cumplen cierta condición. Por ejemplo, si definimos:
edad = c(22, 34, 29, 25, 30, 33, 31, 27, 25, 25)
la siguiente función nos devuelve las posiciones de los valores de este vector que son mayores que 25.
which(edad>25)
esto es, los valores del vector edad mayores que 25 son los que ocupan las posiciones 2, 3, 5, 6, 7 y 8. Podemos asignar estas posiciones a una nueva variable.
mayores25=which(edad>25)
y utilizarla para mostrar cuáles son concretamente esos valores mediante.
edad[mayores25]
Esta expresión puede simplificarse; si no utilizamos which() obtenemos exactamente el mismo resultado:
edad[edad>25]
Se puede realizar también la selección de valores de un vector condicionando por los valores de otro vector. Por ejemplo, si las diez edades del ejemplo anterior corresponden a personas cuyo sexo viene dado por:
sexo <- c("M","H","H","M","M","H","M","M","H","H")
podríamos seleccionar la edad de las mujeres simplemente mediante:
edad[sexo=="M"]
Si además el tiempo (en minutos) que cada una de estas personas se ha pasado al teléfono durante el último día es:
tiempo=c(14.21, 10.36, 11.89, 13.81, 12.03, 10.99, 12.48, 13.37, 12.29, 11.92)
podemos seleccionar el sexo de aquellos que han hablado más de 13 minutos diarios mediante:
sexo[tiempo>13]
Realizaremos el script Ejemplo_cinco. #acceso a elementos de un vector edad = c(22, 34, 29, 25, 30, 33, 31, 27, 25, 25) length(edad)
edad[3] edad[5] edad[2:5] edad[c(1,3,7)]
which(edad>25) mayores25=which(edad>25)
edad[mayores25] edad[edad>25]
sexo =c("M","H","H","M","M","H","M","M","H","H") edad[sexo=="M"]
tiempo=c(14.21, 10.36, 11.89, 13.81, 12.03, 10.99, 12.48, 13.37, 12.29, 11.92) sexo[tiempo>13]
Una cuestión muy importante que siempre debemos tener en cuenta cuando trabajamos con vectores es que en un vector sólo podemos concatenar elementos del mismo tipo.
· Carácter · Numéricos · Enteros · Complejos · Lógicos
TIPOS DE OBJETOS: MATRICES, LISTAS, DATA FRAME Y FACTORES.
La función matrix() permite organizar los datos en forma bidimensional con filas y columnas como se indiquen.
Sintaxis matrix(data, nrow , ncol, byrow, dimnames)
Parámetros ·
data=verctor de datos · nrow=numero de filas · ncol = número de columnas. · byrow lógico. Si es FALSO (el valor predeterminado), la matriz se rellena con columnas, de lo contrario, la matriz se rellena con filas. · Dimnames= una lista de longitud 2 que da los nombres de fila y columna respectivamente.
Realizaremos el script Ejemplo_seis. #como usar un arreglo o matrix
#una fila y tres columnas matrix(1:3,1,3,T,list(c("X1"),c("Y1", "Y2","Y3")))
#tres filas una columna matrix(1:3,3,1,T,list(c("X1","X2","x3"),c("Y1")))
#tres fila y tres columnas y lo asignamos a un objeto y<-matrix(1:9,3,3,T,list(c("X1","X2","x3"),c("Y1", "Y2","Y3"))) y
#Renombrar encabezados de filas y columnas rownames(y) <- c("fila1","fila2","fila3") y colnames(y) <- c("columna1", "columna2", "columna3") y
#insertar columna col<-c(21,22,23) z<-cbind(y,col) z
#insertar columna fil<-c(100,200,300) x<-rbind(y,fil) x
#inserter fila y columna a<-matrix(1:9,3,3,T,list(c("X1","X2","x3"),c("Y1", "Y2","Y3"))) fil<-c(100,200,300) a<-rbind(a,fil) a col<-c(21,22,23,24) a<-cbind(a,col) a
#trae el elemento de la fila dos columnas tres a[2,3]
#trae los valores de la fila uno y dos, columnas dos y cuatro sin #tomar en cuenta la columna tres a[c(1,2),c(2,4)]
#trae el rango de fila uno hasta la tres hasta la columna dos hasta la cuatro a[1:3,2:4]
#solo trae los valores de la primera fila a[1,]
#trae el rango de filas de la uno a la dos a[1:2,]
#trae el rango de columnas de las dos astas la tres a[,2:3]
#Trea todo menos las filas uno y tres a[-c(1,3),]
data=verctor de datos