#1. ¿Que es un objeto en R?
Un objeto es una estructura que almacena datos. Estos objetos pueden contener cualquier tipo de datos, como números, cadenas de texto, matrices, data frames, funciones, entre otros.
1.1 ¿Como se crea y se manipula un objeto?
Se usa el operador de asignación “=” para asignar un valor a un nombre de objeto. Como por ejemplo:
vector1 = c(1, 2, 3, 4)
¿Cual es la diferencia entra un objeto y una variable?El objeto es cualquier elemento que R en el que se nombra uns tipos de estructuras de datos, ya sea numérico, de texto, lógico, etc. por otro lado, la variable, al igual que en matemáticas, es una forma de expresar y relacionar los objetos. Ejemplo
i=1 (objeto) i=i+1 (variable)
Es un archivo en el cual podemos guardar las líneas de código o lista de comandos que estamos ejecutando.
Para ejecutar un script en R, se pueden seguir varios métodos dependiendo del entorno de trabajo. En general, se puede ejecutar un script en RStudio abriendo el archivo .R que contiene el script y luego seleccionando las líneas de código que se desean ejecutar y presionando Ctrl+Enter o haciendo clic en el botón “Run”.
La ventana de comandos en RStudio es como una bloc de notas donde puedes escribir instrucciones (codigos) para hacer cosas con tus datos en R. En la ventana puedes probar tus ideas escribiendo y ejecutando comandos uno por uno. Si quieres saber cómo funciona una función, puedes pedir ayuda directamente desde ahí. Además, puedes ver los resultados de tus comandos justo después de escribirlos, lo que hace que sea fácil corregir errores. Es una herramienta genial para explorar tus datos y jugar con tu código antes de hacer cosas más grandes y complicadas.
Las ventajas de usar la ventana de comandos en R frente a un script son las siguientes:
Interactividad y Pruebas Rápidas: La ventana de comandos permite ejecutar comandos de forma interactiva, lo que facilita probar rápidamente pequeñas porciones de código sin la necesidad de escribir un script completo. Esto es útil para explorar datos, realizar cálculos simples y experimentar con funciones de manera inmediata.
Retroalimentación Inmediata: Al ejecutar comandos en la ventana de comandos, se obtiene una respuesta inmediata en la consola, lo que facilita la visualización de resultados paso a paso y la depuración de posibles errores en el código.
Flexibilidad y Exploración: La ventana de comandos permite una mayor flexibilidad para realizar análisis ad hoc, probar diferentes enfoques y explorar datos de forma interactiva sin la necesidad de estructurar un script completo.
Aprendizaje y Familiarización: Utilizar la ventana de comandos ayuda a los usuarios a familiarizarse con el lenguaje de programación R, ya que pueden observar y aprender la sintaxis de los comandos a medida que los ejecutan. Esto facilita el proceso de aprendizaje para quienes están comenzando a utilizar R.
Vectores: Son colecciones de uno o más objetos del mismo tipo (numéricos, de texto, lógicos, etc.). Los vectores son la estructura de datos más básica en R y permiten realizar operaciones vectorizadas de manera eficiente.
Matrices: Son estructuras bidimensionales que almacenan elementos del mismo tipo. Se utilizan para realizar cálculos y operaciones matriciales.
Data Frames: Son estructuras de datos bidimensionales que pueden almacenar elementos de diferentes tipos (numéricos, de texto, lógicos, etc.). Los data frames son ampliamente utilizados para el manejo y análisis de datos tabulares.
Listas: Son colecciones ordenadas de objetos que pueden ser de diferentes tipos (vectores, matrices, data frames, etc.). Las listas permiten agrupar y manipular diversos tipos de datos en una misma estructura.
Funciones: Son objetos especiales en R que encapsulan un conjunto de instrucciones y pueden ser invocadas por su nombre. Las funciones son fundamentales para la programación en R y permiten reutilizar código.
Para almacenar datos categóricos en R, se debe utilizar un objeto de tipo factor. Los factores en R se utilizan para representar variables de naturaleza categórica, ya sean ordenadas o no ordenadas. Estos son especialmente útiles para manejar variables que representan categorías, como por ejemplo, tipos de flores, marcas de automóviles, o cualquier otra variable que tenga un conjunto finito de categorías.
Importar datos:
Desde archivos de texto: read.table(): Importa datos desde un archivo de texto delimitado por espacios, comas u otros caracteres.
read.csv(): Importa datos desde un archivo CSV (valores separados por comas). read.delim(): Importa datos desde un archivo delimitado, generalmente por tabulaciones.
Desde archivos de Excel: read_excel() (del paquete readxl): Importa datos desde archivos de Excel (.xls y .xlsx).
read.xlsx() (del paquete xlsx): Otra función para importar datos desde archivos de Excel.
Desde bases de datos: read.dbi() (del paquete RSQLite, RODBC, etc.): Importa datos desde una base de datos utilizando una conexión a la base de datos.
Exportar datos:
A archivos de texto o CSV: write.table(): Exporta datos a un archivo de texto delimitado. write.csv(): Exporta datos a un archivo CSV. A archivos de Excel: write.xlsx() (del paquete openxlsx): Exporta datos a un archivo de Excel (.xlsx).
primera funcion.
-c(posicion del obejto): Permite borrar elementos de un objeto
Rm: permite borrar elementos de un objeto
name1=c("Ángel", "Santiago", "David", "Andrea", "Diego")
age1=c(23,15,25,27,33)
city1=c("Neiva", "Guadalupe", "Florencia", "Neiva", "Bogotá")
data=data.frame(name1,age1,city1)
data=data[order(data$age1), ]
age1[+c(which(age1>30))]
## [1] 33
mayor_thirty=data[data$age1>30, ]
name1=c("Ángel", "Santiago", "David", "Andrea", "Diego")
age1=c(23,15,25,27,33)
city1=c("Neiva", "Guadalupe", "Florencia", "Neiva", "Bogotá")
data=data.frame(name1,age1,city1)
exp1=c(4,2,5,3,1)
data <- cbind(data,exp1)
data$city1[data$city1 == "Neiva"] <- "Bogotá"
#data <- mutate(data, city1 = case_when(city1 == 'Neiva' ~ 'Bogotá', city1 == 'Bogotá' ~ 'Neiva'))
#Uno no puede eliminar un solo objeto del data.frame, se debe eliminar toda la fila. ¿oís?
data <- subset(data, name1 != "Ángel")
newdata <- data.frame(
name1 = c("Liz", "Juan", "Michael"),
age1 = c(24, 26, 33),
city1 = c("Ibagué", "Cali", "Pasto"),
exp1= c(2,3,6)
)
data1 <- rbind(data, newdata)
# Cargar la librería ggplot2
library(ggplot2)
#install.packages("labeling")
library(labeling)
# Obtener el conteo de personas por ciudad
counter <- table(data$city1)
df_counter <- as.data.frame(counter)
colnames(df_counter) <- c("City1", "Amount")
# Crear el gráfico de barras
ggplot(df_counter, aes(x = City1, y = Amount)) +
geom_bar(stat = "identity", fill = "skyblue") +
labs(title = "Amount of People's City", x = "City", y = "Amount")
#Conclusiones magníficas llenas de inteligencia y sabiduría: podemos observar que el gráfico de barras nos permite visualizar de manera directa el dato con más frecuentcia, con esto decimos que el 50% de las personas que participan en el data.frame son de Bogotá.
library(summarytools)
## Warning: package 'summarytools' was built under R version 4.3.3
data("iris")
summary(iris)
## Sepal.Length Sepal.Width Petal.Length Petal.Width
## Min. :4.300 Min. :2.000 Min. :1.000 Min. :0.100
## 1st Qu.:5.100 1st Qu.:2.800 1st Qu.:1.600 1st Qu.:0.300
## Median :5.800 Median :3.000 Median :4.350 Median :1.300
## Mean :5.843 Mean :3.057 Mean :3.758 Mean :1.199
## 3rd Qu.:6.400 3rd Qu.:3.300 3rd Qu.:5.100 3rd Qu.:1.800
## Max. :7.900 Max. :4.400 Max. :6.900 Max. :2.500
## Species
## setosa :50
## versicolor:50
## virginica :50
##
##
##
mean(iris$Sepal.Length)
## [1] 5.843333
median(iris$Sepal.Length)
## [1] 5.8
sd(iris$Sepal.Length)
## [1] 0.8280661
hist(iris$Sepal.Length)
# Medidas de tendencia central
dato_num <- iris[, sapply(iris, is.numeric)]
Media <- colMeans(dato_num, na.rm = TRUE)
print(Media)
## Sepal.Length Sepal.Width Petal.Length Petal.Width
## 5.843333 3.057333 3.758000 1.199333
# Medidas de posición (percentiles)
percentiles <- apply(dato_num, 2, quantile, probs = c(0.25, 0.5, 0.75), na.rm = TRUE)
print(percentiles)
## Sepal.Length Sepal.Width Petal.Length Petal.Width
## 25% 5.1 2.8 1.60 0.3
## 50% 5.8 3.0 4.35 1.3
## 75% 6.4 3.3 5.10 1.8
# Cuartiles
cuartiles <- apply(dato_num, 2, quantile, probs = c(0.25, 0.5, 0.75), na.rm = TRUE)
print(cuartiles)
## Sepal.Length Sepal.Width Petal.Length Petal.Width
## 25% 5.1 2.8 1.60 0.3
## 50% 5.8 3.0 4.35 1.3
## 75% 6.4 3.3 5.10 1.8
# Medidas de dispersión
rango_data <- sapply(dato_num, function(x) {
x <- na.omit(x)
if (length(x) > 0) {diff(range(x))} else {NA}})
desviacion <- apply(dato_num, 2, sd, na.rm = TRUE)
varianza <- apply(dato_num, 2, var, na.rm = TRUE)
# Medidas de forma
qqnorm(iris$Sepal.Width)
# Frecuencias
frecuencia_data <- table(iris$Species)
hist(iris$Sepal.Width, breaks = length(unique(iris$Sepal.Width)), main = "Distribución de frecuencias", xlab = "Valor", ylab = "Frecuencia")
library(ggplot2)
BITCOIN <- read.csv("~/BTC-USD.csv", header=FALSE)
BITCOIN_NUM = BITCOIN[, sapply(BITCOIN, is.numeric)]
head(BITCOIN, 6)
## V1 V2 V3 V4 V5 V6 V7
## 1 2014-09-17 465.864 468.174 452.422 457.334 457.334 21056800
## 2 2014-09-18 456.860 456.860 413.104 424.440 424.440 34483200
## 3 2014-09-19 424.103 427.835 384.532 394.796 394.796 37919700
## 4 2014-09-20 394.673 423.296 389.883 408.904 408.904 36863600
## 5 2014-09-21 408.085 412.426 393.181 398.821 398.821 26580100
## 6 2014-09-22 399.100 406.916 397.130 402.152 402.152 24127600
summary(BITCOIN_NUM)
## V2 V3 V4 V5
## Min. : 176.9 Min. : 211.7 Min. : 171.5 Min. : 178.1
## 1st Qu.: 1007.6 1st Qu.: 1040.5 1st Qu.: 983.2 1st Qu.: 1011.8
## Median : 8671.2 Median : 8843.4 Median : 8395.1 Median : 8672.5
## Mean :15890.4 Mean :16262.5 Mean :15492.6 Mean :15907.5
## 3rd Qu.:26760.8 3rd Qu.:27151.0 3rd Qu.:26389.3 3rd Qu.:26784.1
## Max. :73079.4 Max. :73750.1 Max. :71334.1 Max. :73083.5
## V6 V7
## Min. : 178.1 Min. :5.915e+06
## 1st Qu.: 1011.8 1st Qu.:2.093e+08
## Median : 8672.5 Median :1.276e+10
## Mean :15907.5 Mean :1.713e+10
## 3rd Qu.:26784.1 3rd Qu.:2.764e+10
## Max. :73083.5 Max. :3.510e+11
colnames(BITCOIN) = c("Date","Open","High","Low","Close","Adj Close","Volume")
ggplot(BITCOIN, aes(x = Date, y = Open, fill = variable)) + geom_bar(stat = "identity", fill = "skyblue") + labs(title = "Grafico de Barras", x = "Date", y= "Open") +theme_minimal()
Para calcular medidas de dispersión en R, como la varianza o la desviación estándar, se utilizan funciones específicas del lenguaje de programación. Estas funciones proporcionan información sobre la dispersión o variabilidad de una variable o conjunto de datos en relación con su media o valor central.
Varianza: La varianza es una medida de dispersión que se calcula como la media de los cuadrados de las diferencias entre cada valor y la media de la variable. En R, se puede calcular utilizando la función var():
Desviación Estándar: La desviación estándar es la raíz cuadrada de la varianza y se utiliza como una medida de dispersión más fácil de interpretar que la varianza directa. En R, se puede calcular utilizando la función sd():
Coeficiente de Variación El coeficiente de variación es una medida de dispersión relativa que se calcula como la relación entre la desviación estándar y la media de la variable. En R, se puede calcular utilizando la función sd() para la desviación estándar y mean() para la media, luego se divide la desviación estándar por la media: sd(x) / mean(x).