La presente tarea tiene una sección teórica y una sección práctica.

La entrega se realizará a través de un documento de RMarkdown publicado en RPUbs (se entregará el enlace en un correo a mi con copia a la laboratorista).

En caso de algún error en el código de la tarea, publique el error en Piazza o contacte a su instructor para ver como proceder.

Aquellos que no han podido publicar sus tareas antes pueden entregar la tarea de la misma manera en que lo han estado haciendo antes.

Sección teórica.

1. ¿Para que sirve la libreria stringr?

Es una librería que contiene un conjunto de funciones para manejar y transformar cadenas de texto a través de patrones.

2. ¿Qué son y para qué sirven las expresiones regulares?

Son secuencias o moldes de caracteres para definir un patrón de búsqueda.

Sirven para quedarnos o deshacernos de palabras/frases que ocupemos de un texto.

3. ¿Para qué sirve la librería rebus?

Es una librería para construir expresiones regulares de manera más intuitiva. Funciona con patrones, como inicio, final, espacios, dígitos, etcétera. Y con la pipa %R%

4. ¿Para que sirve la función str_view() y str_view_all()? ¿Cuál es la diferencia entre ambas?

Con str_view() solo veremos la primera marca en el patrón.

Con str_view_all() veremos todas las marcas y lo seleccionado en el patrón.

5. ¿Para que sirve la función str_detect() y str_detect_all()? ¿Cuál es la diferencia entre ambas?

Con str_detect() vemos si un vector coincide con un patrón de búsqueda.

Con str_detect_all() vemos todas las coincidencias en el patrón.

6. ¿Para que sirve la función str_replace() y str_replace_all()? ¿Cuál es la diferencia entre ambas?

Con str_replace() se pueden reemplazar datos de manera general.

Con str_replace_all() se puede reemplazar varios datos de una columna con un combine.

7. ¿Para que sirve la función str_remove() y str_remove_all()? ¿Cuál es la diferencia entre ambas?

Con str_remove() podemos eliminar caracteres que coincidan en un patrón determinado.

Con str_remove_all() podemos eliminar todo lo seleccionado de la cadena en todo el texto.

8. ¿Para que sirve la función str_extract() y str_extract_all()? ¿Cuál es la diferencia entre ambas?

Con str_extract() extrae caracteres seleccionados y hace una columna nueva (vector).

Con str_extract_all() extrae todos los caracteres seleccionados en el patrón y hace una columna (vector).

Sección práctica.

0. Estas son las librerías que utilizaremos en la sección práctica. Cárgalas o instalalas en caso de que no las tengas instaladas en tu computadora.

# Librerias 
library(pdftools) # Si no tienes esta libreria, instálala.
library(tidyverse)
library(rebus)
library(htmltools)

1. Dados los siguientes numeros de telefono guardados en numeros, limpie los datos de tal forma que todos los numeros tengan el mismo formato. Para esto, utilice expresiones regulares y funciones de stringr.

(Sugerencia: El formato puede ser el que usted defina, pero el mas facil es que sean solo los numeros, sin símbolos raros).

numeros <- c("(595)107-3344",
             "(890)-123-4465",
             "999 107 5243",
             "999_989-0756")

# Aqui coloque su respuesta ----
Solonumeros <- or1(c(PUNCT, SPC)) 
str_view_all(string = numeros, pattern = Solonumeros)
str_remove_all(string = numeros, pattern = Solonumeros)
## [1] "5951073344" "8901234465" "9991075243" "9999890756"

2. Lea el siguiente pdf en R...

roma <- pdf_text("Roma-Screenplay-SPANISH.pdf")

...y quédese con la escena de la hoja 135:

roma_escena <- roma[135]
roma_escena
## [1] "               mm/dd/yy (White)                      133.\nCONTINUED: (6)\nLa Señora Sofía la abraza con fuerza -\n                        SEÑORA SOFÍA\n          Gracias… gracias… gracias, Cleo…\nPero Cleo no para de llorar -\n                        CLEO\n          No la quería… No la quería…\nLa Señora Sofía intenta calmarla -\n                        SEÑORA SOFÍA\n          Shh, shh, shh… Están bien… Los\n          niños están bien…\nPero Cleo insiste entre llanto y mocos -\n                        CLEO\n          No la quería… No quería que\n          naciera…\nY se quiebra aún más -\n                        CLEO (CONT’D)\n          … ¡Pobrecita!… ¡No quería que\n          naciera!… ¡No quería que naciera!…\nLa Señora Sofía la abraza más fuerte y también llora -\n                        SEÑORA SOFÍA\n          Todo va a estar bien, Cleo… Todo\n          va a estar bien…\nLas dos mujeres lloran abrazadas. Es un llanto\ncompartido, con sollozos como arcadas, y largos silencios\nque explotan en prolongadas vocales.\nLos niños se enlazan alrededor de las mujeres,\nabrazándolas. Sólo Toño los mira de pie.\nLos curiosos se disipan. El jinete jala la riendas y el\ncaballo sigue su camino por la playa.\nEl mar enfurecido con sus inquietas olas refleja los\núltimos destellos del día.\n28 de junio de 1971, lunes\n"

Ahora:

a) Genere una expresión regular que capture todos los quiebres de página (\n) en el objeto roma_escena.

pat <- "\n"
str_view_all(string = roma_escena, pattern = pat)

b) Con la expresión de (a) y la función adecuada de stringr sustituya todos los quiebres de página de roma_escena por espacios en blanco.

str_replace_all(string = roma_escena, pattern = pat, replacement = " ")
## [1] "               mm/dd/yy (White)                      133. CONTINUED: (6) La Señora Sofía la abraza con fuerza -                         SEÑORA SOFÍA           Gracias… gracias… gracias, Cleo… Pero Cleo no para de llorar -                         CLEO           No la quería… No la quería… La Señora Sofía intenta calmarla -                         SEÑORA SOFÍA           Shh, shh, shh… Están bien… Los           niños están bien… Pero Cleo insiste entre llanto y mocos -                         CLEO           No la quería… No quería que           naciera… Y se quiebra aún más -                         CLEO (CONT’D)           … ¡Pobrecita!… ¡No quería que           naciera!… ¡No quería que naciera!… La Señora Sofía la abraza más fuerte y también llora -                         SEÑORA SOFÍA           Todo va a estar bien, Cleo… Todo           va a estar bien… Las dos mujeres lloran abrazadas. Es un llanto compartido, con sollozos como arcadas, y largos silencios que explotan en prolongadas vocales. Los niños se enlazan alrededor de las mujeres, abrazándolas. Sólo Toño los mira de pie. Los curiosos se disipan. El jinete jala la riendas y el caballo sigue su camino por la playa. El mar enfurecido con sus inquietas olas refleja los últimos destellos del día. 28 de junio de 1971, lunes "

c) El objeto roma_escena tiene espacios anormalmente grandes. Genere una expresión regular que capture todos los espacios mas grandes de lo normal (mas de un espacio normal).

pat <- repeated(SPC, lo = 2, hi = Inf)
str_view_all(string = roma_escena, pattern = pat)

d) Con la expresión de (c) y la función adecuada de stringr, sustituya todos los espacios anormalmente grandes de roma_escena por espacios normales.

str_replace_all(string = roma_escena, pattern = pat, replacement = " ")
## [1] " mm/dd/yy (White) 133.\nCONTINUED: (6)\nLa Señora Sofía la abraza con fuerza - SEÑORA SOFÍA Gracias… gracias… gracias, Cleo…\nPero Cleo no para de llorar - CLEO No la quería… No la quería…\nLa Señora Sofía intenta calmarla - SEÑORA SOFÍA Shh, shh, shh… Están bien… Los niños están bien…\nPero Cleo insiste entre llanto y mocos - CLEO No la quería… No quería que naciera…\nY se quiebra aún más - CLEO (CONT’D) … ¡Pobrecita!… ¡No quería que naciera!… ¡No quería que naciera!…\nLa Señora Sofía la abraza más fuerte y también llora - SEÑORA SOFÍA Todo va a estar bien, Cleo… Todo va a estar bien…\nLas dos mujeres lloran abrazadas. Es un llanto\ncompartido, con sollozos como arcadas, y largos silencios\nque explotan en prolongadas vocales.\nLos niños se enlazan alrededor de las mujeres,\nabrazándolas. Sólo Toño los mira de pie.\nLos curiosos se disipan. El jinete jala la riendas y el\ncaballo sigue su camino por la playa.\nEl mar enfurecido con sus inquietas olas refleja los\núltimos destellos del día.\n28 de junio de 1971, lunes\n"

e) Utilizando stringr y la expresión regular adecuada, elimine las siguientes frases:

* "mm/dd/yy (White) 133. CONTINUED: (6) " y...

pat <- "mm/dd/yy \\(White\\)                      133.\nCONTINUED: \\(6\\)"

str_view_all(string = roma_escena, pattern = pat)
str_remove(string = roma_escena, pattern = pat)
## [1] "               \nLa Señora Sofía la abraza con fuerza -\n                        SEÑORA SOFÍA\n          Gracias… gracias… gracias, Cleo…\nPero Cleo no para de llorar -\n                        CLEO\n          No la quería… No la quería…\nLa Señora Sofía intenta calmarla -\n                        SEÑORA SOFÍA\n          Shh, shh, shh… Están bien… Los\n          niños están bien…\nPero Cleo insiste entre llanto y mocos -\n                        CLEO\n          No la quería… No quería que\n          naciera…\nY se quiebra aún más -\n                        CLEO (CONT’D)\n          … ¡Pobrecita!… ¡No quería que\n          naciera!… ¡No quería que naciera!…\nLa Señora Sofía la abraza más fuerte y también llora -\n                        SEÑORA SOFÍA\n          Todo va a estar bien, Cleo… Todo\n          va a estar bien…\nLas dos mujeres lloran abrazadas. Es un llanto\ncompartido, con sollozos como arcadas, y largos silencios\nque explotan en prolongadas vocales.\nLos niños se enlazan alrededor de las mujeres,\nabrazándolas. Sólo Toño los mira de pie.\nLos curiosos se disipan. El jinete jala la riendas y el\ncaballo sigue su camino por la playa.\nEl mar enfurecido con sus inquietas olas refleja los\núltimos destellos del día.\n28 de junio de 1971, lunes\n"
str_view_all(string = roma_escena, pattern = pat)

* "28 de junio de 1971, lunes"

pat <- "28 de junio de 1971, lunes"

str_view_all(string = roma_escena, pattern = pat)
str_remove(string = roma_escena, pattern = pat)
## [1] "               mm/dd/yy (White)                      133.\nCONTINUED: (6)\nLa Señora Sofía la abraza con fuerza -\n                        SEÑORA SOFÍA\n          Gracias… gracias… gracias, Cleo…\nPero Cleo no para de llorar -\n                        CLEO\n          No la quería… No la quería…\nLa Señora Sofía intenta calmarla -\n                        SEÑORA SOFÍA\n          Shh, shh, shh… Están bien… Los\n          niños están bien…\nPero Cleo insiste entre llanto y mocos -\n                        CLEO\n          No la quería… No quería que\n          naciera…\nY se quiebra aún más -\n                        CLEO (CONT’D)\n          … ¡Pobrecita!… ¡No quería que\n          naciera!… ¡No quería que naciera!…\nLa Señora Sofía la abraza más fuerte y también llora -\n                        SEÑORA SOFÍA\n          Todo va a estar bien, Cleo… Todo\n          va a estar bien…\nLas dos mujeres lloran abrazadas. Es un llanto\ncompartido, con sollozos como arcadas, y largos silencios\nque explotan en prolongadas vocales.\nLos niños se enlazan alrededor de las mujeres,\nabrazándolas. Sólo Toño los mira de pie.\nLos curiosos se disipan. El jinete jala la riendas y el\ncaballo sigue su camino por la playa.\nEl mar enfurecido con sus inquietas olas refleja los\núltimos destellos del día.\n\n"
str_view_all(string = roma_escena, pattern = pat)

f) Genere una expresión regular que capture solamente las palabras que estan completamente en mayúsculas.

pat <- repeated(x = UPPER,lo = 2, hi = Inf)
str_view_all(string = roma_escena, pattern = pat)