Vicente Mallama

2023-09-30

Exploración y Práctica de Funciones

R es un lenguaje de programación centrado en el análisis de datos y la estadística, con su propio lenguaje y sintaxis. Aunque poderoso, su singularidad puede resultar un poco compleja. Ofrece herramientas especializadas y una gran comunidad de usuarios, convirtiéndolo en una opción destacada para el análisis de datos.

1.Creación de un Objeto en R

En R, puedes crear objetos para almacenar y manipular datos. A continuación, se muestra cómo crear un objeto llamado “manzana” y asignarle el valor 15.

manzana <- 15

En R también es posible crear y manipular valores textuales, los cuales deben estar encerrados en comillas, ya sean comillas simples o dobles. Por ejemplo:

texto <- "UDENAR"

En R, para visualizar el contenido de un objeto que hemos creado previamente, tenemos varias opciones. Una de las formas más simples es escribir directamente el nombre del objeto en la consola y presionar ‘Enter’. En este caso, mostraremos el valor de la variable creada anteriormente cuyo nombre es “texto”.

texto
## [1] "UDENAR"

2.Operaciones Matemáticas

R es una herramienta poderosa por lo cual permite realizar una variedad de operaciones matemáticas básicas para el análisis de datos, por ejemplo:

Suma

5 + 65
## [1] 70

Resta

10 - 7
## [1] 3

Multiplicación

56 * 7
## [1] 392

División

20 / 5
## [1] 4

Potenciación

6^3
## [1] 216

3.Preguntas de igualdad

R no solo es útil para realizar operaciones matemáticas, sino que también puede emplearse para evaluar preguntas de igualdad y realizar comparaciones entre datos. Cuando es la igualdad verdadera, La respuesta será TRUE; caso contrario, la respuesta será FALSE. Ejemplo:

3 == 5  # tres es igual a 5?
## [1] FALSE
5 != 0  # cinco es distinto de 0?
## [1] TRUE
2 > 9   # dos es mayor que nueve?
## [1] FALSE
5 >= 5  # cinco es mayor o igual que 5?
## [1] TRUE
manzana <= 1 # El Objeto manzana es menor o igual que 1?
## [1] FALSE

4.Otros valores

a. TRUE y FALSE: Estos son valores lógicos que representan respuestas verdaderas o falsas, respectivamente, en evaluaciones condicionales. También puedes usar T y F para representarlos de manera abreviada.

b. NA: Este valor especial representa datos faltantes o no disponibles en un conjunto de datos. Es importante destacar que NA es distinto de cero y se utiliza para indicar la ausencia de un valor válido en un contexto numérico o de otro tipo.

c. NULL: Representa un objeto nulo en R, lo que significa que no contiene ningún valor o datos. Se utiliza para indicar la falta de un objeto o la eliminación de una variable.

d. Inf y -Inf: Estos valores representan infinito positivo y negativo, respectivamente, en contextos numéricos. Pueden surgir en cálculos matemáticos cuando se realizan divisiones por cero u otras operaciones que resultan en valores infinitos.

5.Creación de vectores

En R, los vectores son una estructura fundamental para almacenar datos. Para crear un vector, puedes utilizar la función c() (que significa “concatenate” o concatenar), seguida de los elementos que deseas incluir en el vector, separados por comas. Por ejemplo, vamos a crear un vector de numérico:

mi_vector_numerico <- c(1, 2, 3, 4, 5)

En R también se pueden crear Vectores Textuales, estos contienen valores de texto y deben estar entre comillas simples o dobles. Por ejemplo:

mi_vector_textual <- c("manzana", "banana", "naranja")

Para visualizar el vector simplemente escribimos su nombre y presionamos “Enter”:

mi_vector_numerico
## [1] 1 2 3 4 5
mi_vector_textual
## [1] "manzana" "banana"  "naranja"

6.Funciones en R

R ofrece una amplia variedad de funciones básicas que son esenciales para realizar operaciones comunes en análisis de datos y estadísticas.

En R, puedes obtener ayuda sobre una función de distintas maneras: mediante el signo de interrogación ?, usando la función help(), empleando str() o con args(nombre_de_la_función) para ver los argumentos que acepta. Estas opciones ayudan a comprender y utilizar funciones de manera efectiva. Por ejemplo:

str(mean)
## function (x, ...)

Ejemplos de algunas funciones:

a. round: Esta función se utiliza para redondear números. Puedes especificar la cantidad de decimales a la que deseas redondear un número, lo que es útil para ajustar la precisión de los resultados. Ejemplo:

round(30.856974, digits = 2)
## [1] 30.86

b. mean: La función mean calcula el valor promedio de un conjunto de números. Es útil para obtener la media aritmética de una serie de datos. Ejemplo:

numeros <- c(322, 334, 62, 8, 190)
mean(numeros)
## [1] 183.2

e. length: Devuelve la longitud (número de elementos) de un vector o lista. Puedes utilizar esta función para conocer la cantidad de elementos en una estructura de datos. Ejemplo:

mi_vector <- c("manzana", "banana", "naranja")
length(mi_vector)
## [1] 3

7.Tipos de valores y jerarquía

En R, los valores se pueden clasificar en tres categorías principales: valores textuales, valores numéricos y valores lógicos. Estos tipos de valores tienen una jerarquía en la que los valores textuales ocupan el nivel superior, seguidos de los valores numéricos y, finalmente, los valores lógicos. Ejemplo:

objeto <- c("papa, 3, NULL")
# Función class para mirar qué tipo de valor es
class(objeto)
## [1] "character"

8.Variables categóricas

Las variables categóricas son un tipo de variable en estadísticas y análisis de datos que representan categorías o grupos distintos en lugar de valores numéricos. Estas categorías pueden ser cualitativas, es decir, representan características que no pueden medirse con números, como colores, género, tipos de productos, estados civiles, etc.

Se dividen en dos subtipos:

a. Nominales: Las categorías no tienen un orden específico o jerarquía. Por ejemplo, el género (masculino, femenino) es una variable nominal, ya que no existe un orden natural entre las categorías.

b. Ordinales Las categorías tienen un orden o jerarquía específica. Por ejemplo, el nivel de educación (primaria, secundaria, universidad) es una variable ordinal, ya que existe un orden lógico entre las categorías. Ejemplo, el tipo sanguíneo es una variable categórica tipo nominal:

tipo_sanguineo <- c(
  "A+", "A-", "B+", "B-", "AB+", "AB-", "O+", "O-")
class(tipo_sanguineo)
## [1] "character"

9.Transformación de variables

La función factor en R se utiliza para transformar variables categóricas representadas como texto en variables categóricas numéricas con niveles asignados. Esto facilita el manejo y análisis de datos categóricos. Por ejemplo, vamos a convertir la variable tipo sanguíneo (que es de tipo texto) en una variable categórica.

tipo_sanguineo <- factor(tipo_sanguineo)
# Usamos la función class para mirar qué tipo de variable tenemos ahora.
class(tipo_sanguineo)
## [1] "factor"

Para el caso de variables categóricas Ordinales, primero creamos una variable con varias categorías. Ejemplo:

nivel_educativo <- c("posgrado", "colegio", "universidad")
nivel_educativo
## [1] "posgrado"    "colegio"     "universidad"

y para categorizar la variable se debe hacer lo siguiente:

nivel_educativo <- factor(nivel_educativo,
                              levels = c("colegio",
                                         "universidad",
                                         "posgrado"))
nivel_educativo
## [1] posgrado    colegio     universidad
## Levels: colegio universidad posgrado
# Podemos observar ahora como la variable ya es de tipo ordinal con varios niveles.

10.Creación de bases de datos

Una base de datos es un conjunto organizado de datos almacenados electrónicamente que se utiliza para facilitar el acceso, la gestión y la actualización de la información.

a. Primero debemos crear las variables y sus observaciones:

titulos <- c("Titanic", "El Padrino", "Forrest Gump", "Avatar", "Star Wars")
año_estreno <- c(1997, 1972, NA, 2009, 1977)
genero <- c("Drama/Romance", "Crimen/Drama", "Drama/Comedia", "Ciencia ficción/Aventuras", "NA")
calificacion <- c(7.8, 9.2, 8.8, NA, 8.6)
director <- c("James Cameron", "Francis Ford Coppola", "Robert Zemeckis", "James Cameron", "George Lucas")

b. Procedemos a crear una matriz con la función data.frame

datos_pelis <- data.frame(titulos, año_estreno, genero, calificacion, director)
datos_pelis #procedemos a visualizar el data frame que hemos creado
##        titulos año_estreno                    genero calificacion
## 1      Titanic        1997             Drama/Romance          7.8
## 2   El Padrino        1972              Crimen/Drama          9.2
## 3 Forrest Gump          NA             Drama/Comedia          8.8
## 4       Avatar        2009 Ciencia ficción/Aventuras           NA
## 5    Star Wars        1977                        NA          8.6
##               director
## 1        James Cameron
## 2 Francis Ford Coppola
## 3      Robert Zemeckis
## 4        James Cameron
## 5         George Lucas

11.Bases de datos nativas de R

En R, uno de los ejemplos más notables de bases de datos nativas es el paquete datasets. Este paquete incluye una variedad de conjuntos de datos incorporados que se utilizan comúnmente para ejemplos y prácticas en análisis de datos y estadísticas. Algunos de estos conjuntos de datos incluyen mtcars (datos de automóviles), iris (datos de flores iris), airquality (datos de calidad del aire) y muchos más.

help(package = "datasets") #Para mirar que Bases de datos tenemos disponibles de manera nativa

Ahora escogemos una base de datos y la subimos al Global environment, de la siguiente manera:

data("Orange")

Podemos usar funciones como head y tail con sus respectivos parámetros para mirar el cabezario y el final de las observaciones.

head(x = Orange) #para ver el cabezario 
##   Tree  age circumference
## 1    1  118            30
## 2    1  484            58
## 3    1  664            87
## 4    1 1004           115
## 5    1 1231           120
## 6    1 1372           142
tail(x = Orange) #para ver el final
##    Tree  age circumference
## 30    5  484            49
## 31    5  664            81
## 32    5 1004           125
## 33    5 1231           142
## 34    5 1372           174
## 35    5 1582           177

También podemos ser más especéficos y mirar el cabezario solamente de la primera observación, o el final de las 2 ultimas observaciones de la siguiente manera:

head(Orange, n = 1)
##   Tree age circumference
## 1    1 118            30
tail(Orange, n = 2)
##    Tree  age circumference
## 34    5 1372           174
## 35    5 1582           177

También podemos ver la estructura de la base de Datos asi:

str(Orange)
## Classes 'nfnGroupedData', 'nfGroupedData', 'groupedData' and 'data.frame':   35 obs. of  3 variables:
##  $ Tree         : Ord.factor w/ 5 levels "3"<"1"<"5"<"2"<..: 2 2 2 2 2 2 2 4 4 4 ...
##  $ age          : num  118 484 664 1004 1231 ...
##  $ circumference: num  30 58 87 115 120 142 145 33 69 111 ...
##  - attr(*, "formula")=Class 'formula'  language circumference ~ age | Tree
##   .. ..- attr(*, ".Environment")=<environment: R_EmptyEnv> 
##  - attr(*, "labels")=List of 2
##   ..$ x: chr "Time since December 31, 1968"
##   ..$ y: chr "Trunk circumference"
##  - attr(*, "units")=List of 2
##   ..$ x: chr "(days)"
##   ..$ y: chr "(mm)"

Existen también muchas otras funciones adicionales, que nos sirven para mirar diferentes aspectos, como el número de filas, número de columnas, etc. aquí algunos ejemplos:

nrow(Orange)
## [1] 35
ncol(Orange)
## [1] 3
dim(Orange)
## [1] 35  3
names(Orange)
## [1] "Tree"          "age"           "circumference"

También podemos acceder a una columna especifica, de la siguiente manera, por ejemplo:

Orange$Tree
##  [1] 1 1 1 1 1 1 1 2 2 2 2 2 2 2 3 3 3 3 3 3 3 4 4 4 4 4 4 4 5 5 5 5 5 5 5
## Levels: 3 < 1 < 5 < 2 < 4

Otra forma de acceder, en este caso con la posición especifica entre corchetes.

Orange[, 2]
##  [1]  118  484  664 1004 1231 1372 1582  118  484  664 1004 1231 1372 1582  118
## [16]  484  664 1004 1231 1372 1582  118  484  664 1004 1231 1372 1582  118  484
## [31]  664 1004 1231 1372 1582
Orange[2 , ]
##   Tree age circumference
## 2    1 484            58
Orange[2 , 2]
## [1] 484
Orange[1, "age"]
## [1] 118

La función attach en R se utiliza para adjuntar un data frame o una lista al entorno global de R. Cuando se adjunta un objeto, como un data frame, las columnas de ese data frame se vuelven accesibles sin la necesidad de hacer referencia al nombre del objeto. Esto puede facilitar la manipulación de datos al escribir código más conciso.

attach(Orange)
Tree
##  [1] 1 1 1 1 1 1 1 2 2 2 2 2 2 2 3 3 3 3 3 3 3 4 4 4 4 4 4 4 5 5 5 5 5 5 5
## Levels: 3 < 1 < 5 < 2 < 4
detach(Orange) #para deshacer el Attach.

Se puede acceder a varias columnas, únicamente con la función concatenate. Ejemplo:

Orange[ ,c("Tree", "age")]
##    Tree  age
## 1     1  118
## 2     1  484
## 3     1  664
## 4     1 1004
## 5     1 1231
## 6     1 1372
## 7     1 1582
## 8     2  118
## 9     2  484
## 10    2  664
## 11    2 1004
## 12    2 1231
## 13    2 1372
## 14    2 1582
## 15    3  118
## 16    3  484
## 17    3  664
## 18    3 1004
## 19    3 1231
## 20    3 1372
## 21    3 1582
## 22    4  118
## 23    4  484
## 24    4  664
## 25    4 1004
## 26    4 1231
## 27    4 1372
## 28    4 1582
## 29    5  118
## 30    5  484
## 31    5  664
## 32    5 1004
## 33    5 1231
## 34    5 1372
## 35    5 1582

También podemos acceder solamente a lo que sea diferente de 1 a 2

Orange[, -c(1:2)]
##  [1]  30  58  87 115 120 142 145  33  69 111 156 172 203 203  30  51  75 108 115
## [20] 139 140  32  62 112 167 179 209 214  30  49  81 125 142 174 177