Capítulo20 Cadena de Caracteres = STRINGS

## [1] "2025-12-01"

El tema proviene de los siguientes sitios.

English: https://r4ds.had.co.nz/strings.html

Español: https://es.r4ds.hadley.nz/14-strings.html

library(tidyverse)
library(datos)
library(stringr)

string1 <- "El Pequeño Principe; Saint Exupery"
string2 <- "El segundo sexo: Simone de Beauvoir"
string3 <- "El segundo sexo \\ Simone de Beauvoir"


string1
## [1] "El Pequeño Principe; Saint Exupery"
string2
## [1] "El segundo sexo: Simone de Beauvoir"
string3
## [1] "El segundo sexo \\ Simone de Beauvoir"

Caracteres especiales en cadenas de caracteres

comilla_doble <- '\"' # ó '"'
comilla_simple <- '\'' # ó "'"

comilla_ampersand <- "&"

comilla_doble
## [1] "\""
comilla_simple
## [1] "'"
comilla_ampersand
## [1] "&"

&


Backslash

x <- c("\"", "\\")
x
## [1] "\"" "\\"
writeLines(x)
## "
## \

20.1 Caracteres especiales

"\n"
## [1] "\n"
"\t"
## [1] "\t"

20.2 Para ver las opciones de caracteres y como trabajar cadenas de caracteres use ?“’” para ver

?"'"

‘⁠⁠’ newline (aka ‘line feed’) ‘⁠’ carriage return ‘⁠’ tab ‘⁠’ backspace ‘⁠⁠’ alert (bell) ‘⁠’ form feed ‘⁠’ vertical tab ‘⁠\⁠’ backslash ‘⁠⁠’ ‘⁠'⁠’ ASCII apostrophe ‘⁠’⁠’ ‘⁠"⁠’ ASCII quotation mark ‘⁠“⁠’ ‘⁠`⁠’ ASCII grave accent (backtick) ‘⁠`⁠’


20.3 Lista de caracteres especiales (unicodes)

Vea el siguiente enlace para los unicodes

https://en.wikipedia.org/wiki/List_of_Unicode_characters

x <- "\u00b5" # mu
x
## [1] "µ"
y <- "\u00b6" # pilcrow
y
## [1] "¶"
z <- "\u00A1" # ¡
z
## [1] "¡"
w <- "\u01FC\u00b6" # Ǽ¶
w
## [1] "Ǽ¶"

Escribir si nombre en el alfabeto Cyrilico

  • Vea este enlace para conocer el alfabeto cyrilico

<https://www.google.com/search?client=safari&rls=en&q=cyrillic+alphabet&ie=UTF-8&oe=UTF-8#vhid=cMLOx1fN0Zg5UM&vssid=l>

РЕЙМОНД

Raymond = "\u048E\u0400\u042B\u043C\u043E\u043D\u0434, Asi se escribe mi nombre en ruso"
Raymond
## [1] "ҎЀЫмонд, Asi se escribe mi nombre en ruso"

necesito poner una letra extraña en mi frase, “48E”.


20.4 Temas: Cadenas de Caracteres

  • library(stringr)

Solamente trabajermos con el paquete stringr, donde las funciones escrita de forma que sean más intuitivos para recordar. Todas las funciones conmienzan con str_


20.4.1 El largo de una cadena de caracteres con str_length

library(stringr)
str_length("Yo quiero un Lamborghini")
## [1] 24

20.4.2 Combinar cadenas con str_c

Nota aquí que une la primera oración con la segunda oración

str_c("Es una oración con muchas letras y palabras", 
      "Mi pelicula favorita es Cinema Paraiso")
## [1] "Es una oración con muchas letras y palabrasMi pelicula favorita es Cinema Paraiso"

Usa el argumento sep = “xxx” para controlar cómo separar las oraciones

str_c("Es una oración con muchas letras y palabras", 
      "Mi pelicula favorita es Cinema Paraiso", sep = ", ")
## [1] "Es una oración con muchas letras y palabras, Mi pelicula favorita es Cinema Paraiso"

  • str_replace_na()
x <- c("Mi pelicula favorita es Cinema Paraiso", NA)
x
## [1] "Mi pelicula favorita es Cinema Paraiso"
## [2] NA
str_c("|-", x, "-|")
## [1] "|-Mi pelicula favorita es Cinema Paraiso-|"
## [2] NA

20.5 Dividir cadenas basado en la posición de los caracteres en la cadena

  • str_sub()
x= c( "Piña", "Manzana", "Toronja")
str_sub(x, 1,1)
## [1] "P" "M" "T"

20.5.1 Seleccionar los caracteres al último de las palabras

x= c( "Piña", "Manzana", "Toronja", "Hello")
str_sub(x, -2,-1)
## [1] "ña" "na" "ja" "lo"

20.6 You can also use str_sub() to modify strings:

x <- "BBCDEF"
str_sub(x, 1, 1) <- "A"; x
## [1] "ABCDEF"
x <- "BBCDEF"
str_sub(x, -1, -1) <- "K"; x
## [1] "BBCDEK"
x <- "BBCDEF"
str_sub(x, -2, -2) <- "GHIJ"; x
## [1] "BBCDGHIJF"
x <- "BBCDEF"
str_sub(x, -3, -3) <- "BC"; x
## [1] "BBCBCEF"
x <- "BBCDEF"
str_sub(x, 2, -2) <- ""; x
## [1] "BF"

20.6.1 Cambiar a todo minuscula

x= c( "Piña", "Manzana", "Toronja", "HAPPY")
str_to_lower(x)
## [1] "piña"    "manzana" "toronja" "happy"

20.6.2 Cambiar a mayuscula

x= c( "Piña", "Manzana", "Toronja")
str_to_upper(x)
## [1] "PIÑA"    "MANZANA" "TORONJA"

20.7 Locales

  • ¿Qué es un locale?
  • str_to_lower()
  • str_to_upper()
  • str_order() # que hace esta función?
  • str_sort() # que hace esta función?
x
## [1] "Piña"    "Manzana" "Toronja"
str_order(x) # regresa el orden de las palabras
## [1] 2 1 3
str_sort(x) # reorganiza las palabras en orden alfabético
## [1] "Manzana" "Piña"    "Toronja"

  1. Ejercicios:

Hacer los ejercicios en la sección 14.2.5 del libro en español


20.8 Buscar patrones

20.9 Coincidencia básica

Para visualizar patrones de letras

  • str_view()
  • str_view( , .x.)
library(stringr)
x <- c("manzana", "banana", "pera", "extraer")
str_view(x, "er")
## [3] │ p<er>a
## [4] │ extra<er>

Ejemplo de como uno puede utiliza esas funciones

str_detect()

x= c( "Piña", "Manzana", "Toronja", "Jugo", "Monique", "Raymond", "mami")
str_detect(x, "a") # detectar la a
## [1]  TRUE  TRUE  TRUE FALSE FALSE  TRUE  TRUE
str_detect(x, "i") # detectar la i
## [1]  TRUE FALSE FALSE FALSE  TRUE FALSE  TRUE
str_detect(x, "ñ")
## [1]  TRUE FALSE FALSE FALSE FALSE FALSE FALSE

20.9.1 Detectar las palabras que comienzan con una letra específica con “^”. Nota el uso de mayusculas y minusculas y sumamos cuantas palabras cumplen con la condición.

# ¿Cuántas palabras comunes empiezan con m o M?
# str_detect(x, "^M")
x
## [1] "Piña"    "Manzana" "Toronja" "Jugo"    "Monique" "Raymond" "mami"
sum(str_detect(x, "^m"))
## [1] 1
sum(str_detect(x, "^M"))
## [1] 2
sum(str_detect(x, "^[mM]")) # ambas mayusculas y minusculas
## [1] 3

20.9.2 Detectar las palabras que terminan con una letra específica con “$”

# ¿Qué proporción de palabras comunes terminan con una vocal?

library(datos)
mean(str_detect(palabras, "[aáeéiíoóuú]$"))
## [1] 0.561
# ¿Qué proporción de palabras comunes terminan con una vocal especifica?
mean(str_detect(palabras, "[ao]$"))
## [1] 0.428
mean(str_detect(x, "[d]$")) # Raymond
## [1] 0.1428571

Dataset: palabras

  • Comienza para mirar el archivo palabras

  • Cuentas palabras tiene ese archivo?

library(stringr)
library(datos)
palabras
##    [1] "a"               "abril"           "acción"          "acciones"       
##    [5] "acerca"          "actitud"         "actividad"       "actividades"    
##    [9] "acto"            "actual"          "acuerdo"         "adelante"       
##   [13] "además"          "administración"  "afirmó"          "agua"           
##   [17] "ahí"             "ahora"           "aire"            "al"             
##   [21] "algo"            "alguien"         "algún"           "alguna"         
##   [25] "algunas"         "algunos"         "allá"            "allí"           
##   [29] "alrededor"       "alta"            "alto"            "ambiente"       
##   [33] "ambos"           "américa"         "amigo"           "amigos"         
##   [37] "amor"            "análisis"        "animales"        "ante"           
##   [41] "anterior"        "antes"           "antonio"         "año"            
##   [45] "años"            "aparece"         "apenas"          "apoyo"          
##   [49] "aquel"           "aquella"         "aquellas"        "aquellos"       
##   [53] "aquí"            "área"            "argentina"       "armas"          
##   [57] "arriba"          "arte"            "artículo"        "así"            
##   [61] "asimismo"        "asociación"      "aspecto"         "aspectos"       
##   [65] "asunto"          "atención"        "atrás"           "aumento"        
##   [69] "aun"             "aún"             "aunque"          "autor"          
##   [73] "autoridades"     "ayer"            "ayuda"           "b"              
##   [77] "baja"            "bajo"            "banco"           "barcelona"      
##   [81] "base"            "bastante"        "bien"            "blanca"         
##   [85] "blanco"          "boca"            "buen"            "buena"          
##   [89] "bueno"           "buenos"          "busca"           "buscar"         
##   [93] "c"               "cabeza"          "cabo"            "cada"           
##   [97] "calidad"         "calle"           "cama"            "cámara"         
##  [101] "cambio"          "cambios"         "camino"          "campaña"        
##  [105] "campo"           "cantidad"        "capacidad"       "capaz"          
##  [109] "capital"         "cara"            "carácter"        "características"
##  [113] "cargo"           "carlos"          "carne"           "carrera"        
##  [117] "carta"           "casa"            "casi"            "caso"           
##  [121] "casos"           "causa"           "central"         "centro"         
##  [125] "centros"         "cerca"           "chile"           "ciencia"        
##  [129] "ciento"          "cierta"          "cierto"          "cinco"          
##  [133] "cine"            "ciudad"          "civil"           "claro"          
##  [137] "clase"           "club"            "color"           "comenzó"        
##  [141] "comercio"        "comisión"        "como"            "cómo"           
##  [145] "compañía"        "común"           "comunicación"    "comunidad"      
##  [149] "con"             "concepto"        "conciencia"      "condiciones"    
##  [153] "congreso"        "conjunto"        "conocer"         "conocimiento"   
##  [157] "consecuencia"    "conseguir"       "consejo"         "considera"      
##  [161] "constitución"    "construcción"    "consumo"         "contenido"      
##  [165] "contra"          "contrario"       "control"         "corazón"        
##  [169] "corte"           "cosa"            "cosas"           "costa"          
##  [173] "creación"        "crecimiento"     "creo"            "crisis"         
##  [177] "cuadro"          "cual"            "cuales"          "cualquier"      
##  [181] "cuando"          "cuanto"          "cuarto"          "cuatro"         
##  [185] "cuba"            "cuenta"          "cuerpo"          "cuestión"       
##  [189] "cultura"         "cultural"        "curso"           "cuya"           
##  [193] "cuyo"            "d"               "da"              "dado"           
##  [197] "dan"             "dar"             "datos"           "de"             
##  [201] "debe"            "deben"           "debía"           "debido"         
##  [205] "decía"           "decir"           "decisión"        "defensa"        
##  [209] "deja"            "dejar"           "dejó"            "del"            
##  [213] "demás"           "demasiado"       "democracia"      "dentro"         
##  [217] "derecha"         "derecho"         "derechos"        "desarrollo"     
##  [221] "desde"           "deseo"           "después"         "destino"        
##  [225] "día"             "diario"          "días"            "dice"           
##  [229] "dicen"           "dicho"           "diciembre"       "diez"           
##  [233] "diferencia"      "diferentes"      "difícil"         "dijo"           
##  [237] "dinero"          "dio"             "dios"            "dirección"      
##  [241] "director"        "distintas"       "distintos"       "diversas"       
##  [245] "diversos"        "doctor"          "dólares"         "dolor"          
##  [249] "domingo"         "don"             "donde"           "dónde"          
##  [253] "dos"             "duda"            "durante"         "e"              
##  [257] "economía"        "económica"       "económico"       "edad"           
##  [261] "educación"       "efecto"          "efectos"         "ejemplo"        
##  [265] "ejército"        "el"              "él"              "elecciones"     
##  [269] "electoral"       "elementos"       "ella"            "ellas"          
##  [273] "ello"            "ellos"           "embargo"         "empresa"        
##  [277] "empresas"        "en"              "encima"          "encontrar"      
##  [281] "encuentra"       "encuentran"      "encuentro"       "energía"        
##  [285] "enero"           "enfermedad"      "entonces"        "entrada"        
##  [289] "entrar"          "entre"           "época"           "equipo"         
##  [293] "era"             "eran"            "es"              "esa"            
##  [297] "esas"            "escuela"         "ese"             "esfuerzo"       
##  [301] "eso"             "esos"            "espacio"         "españa"         
##  [305] "español"         "española"        "españoles"       "especial"       
##  [309] "especialmente"   "especie"         "espera"          "esta"           
##  [313] "está"            "ésta"            "estaba"          "estaban"        
##  [317] "estado"          "estados"         "estamos"         "están"          
##  [321] "estar"           "estas"           "este"            "éste"           
##  [325] "estilo"          "esto"            "estos"           "estoy"          
##  [329] "estructura"      "estudio"         "estudios"        "estuvo"         
##  [333] "etapa"           "etc"             "europa"          "europea"        
##  [337] "evitar"          "ex"              "existe"          "existen"        
##  [341] "existencia"      "éxito"           "experiencia"     "explicó"        
##  [345] "expresión"       "exterior"        "fácil"           "falta"          
##  [349] "familia"         "favor"           "fecha"           "felipe"         
##  [353] "fernando"        "figura"          "fin"             "final"          
##  [357] "finalmente"      "fiscal"          "flores"          "fondo"          
##  [361] "forma"           "formación"       "formas"          "francia"        
##  [365] "francisco"       "frente"          "fue"             "fuego"          
##  [369] "fuentes"         "fuera"           "fueron"          "fuerte"         
##  [373] "fuerza"          "fuerzas"         "función"         "fútbol"         
##  [377] "futuro"          "g"               "garcía"          "general"        
##  [381] "generales"       "gente"           "gobierno"        "gonzález"       
##  [385] "gracias"         "grado"           "gran"            "grande"         
##  [389] "grandes"         "grupo"           "grupos"          "guerra"         
##  [393] "ha"              "haber"           "había"           "habían"         
##  [397] "habla"           "hablar"          "habrá"           "habría"         
##  [401] "hace"            "hacen"           "hacer"           "hacerlo"        
##  [405] "hacia"           "hacía"           "haciendo"        "han"            
##  [409] "has"             "hasta"           "hay"             "haya"           
##  [413] "he"              "hecho"           "hechos"          "hemos"          
##  [417] "hermano"         "hicieron"        "hija"            "hijo"           
##  [421] "hijos"           "historia"        "hizo"            "hombre"         
##  [425] "hombres"         "hora"            "horas"           "hospital"       
##  [429] "hoy"             "hubiera"         "hubo"            "humana"         
##  [433] "humano"          "humanos"         "i"               "iba"            
##  [437] "idea"            "ideas"           "iglesia"         "igual"          
##  [441] "ii"              "imagen"          "imágenes"        "importancia"    
##  [445] "importante"      "importantes"     "imposible"       "incluso"        
##  [449] "industria"       "información"     "informe"         "instituciones"  
##  [453] "instituto"       "interés"         "intereses"       "interior"       
##  [457] "internacional"   "investigación"   "ir"              "izquierda"      
##  [461] "j"               "jamás"           "jefe"            "jorge"          
##  [465] "josé"            "joven"           "jóvenes"         "juan"           
##  [469] "juego"           "juez"            "juicio"          "julio"          
##  [473] "junio"           "junto"           "justicia"        "la"             
##  [477] "lado"            "larga"           "largo"           "las"            
##  [481] "le"              "lejos"           "lenguaje"        "les"            
##  [485] "ley"             "libertad"        "libre"           "libro"          
##  [489] "libros"          "líder"           "línea"           "llama"          
##  [493] "llamado"         "llega"           "llegado"         "llegar"         
##  [497] "llegó"           "lleva"           "llevar"          "lo"             
##  [501] "local"           "lópez"           "los"             "lucha"          
##  [505] "luego"           "lugar"           "luis"            "luz"            
##  [509] "m"               "madre"           "madrid"          "mal"            
##  [513] "manera"          "mano"            "manos"           "mantener"       
##  [517] "manuel"          "mañana"          "mar"             "marcha"         
##  [521] "marco"           "maría"           "martín"          "marzo"          
##  [525] "más"             "materia"         "material"        "máximo"         
##  [529] "mayo"            "mayor"           "mayores"         "mayoría"        
##  [533] "me"              "media"           "mediante"        "médico"         
##  [537] "medida"          "medidas"         "medio"           "medios"         
##  [541] "mejor"           "mejores"         "memoria"         "menor"          
##  [545] "menos"           "mercado"         "mes"             "mesa"           
##  [549] "meses"           "metros"          "méxico"          "mi"             
##  [553] "mí"              "miedo"           "miembros"        "mientras"       
##  [557] "miguel"          "mil"             "militar"         "militares"      
##  [561] "millones"        "ministerio"      "ministro"        "minutos"        
##  [565] "mira"            "mirada"          "mis"             "misma"          
##  [569] "mismo"           "mismos"          "mitad"           "modelo"         
##  [573] "modo"            "momento"         "momentos"        "movimiento"     
##  [577] "mucha"           "muchas"          "mucho"           "muchos"         
##  [581] "muerte"          "muerto"          "muestra"         "mujer"          
##  [585] "mujeres"         "mundial"         "mundo"           "música"         
##  [589] "muy"             "n"               "nacional"        "nada"           
##  [593] "nadie"           "natural"         "naturaleza"      "necesario"      
##  [597] "necesidad"       "negro"           "ni"              "ningún"         
##  [601] "ninguna"         "niño"            "niños"           "nivel"          
##  [605] "niveles"         "no"              "noche"           "nombre"         
##  [609] "norte"           "nos"             "nosotros"        "noviembre"      
##  [613] "nuestra"         "nuestras"        "nuestro"         "nuestros"       
##  [617] "nueva"           "nuevas"          "nuevo"           "nuevos"         
##  [621] "número"          "nunca"           "o"               "objetivo"       
##  [625] "objeto"          "obra"            "obras"           "obstante"       
##  [629] "ocasión"         "ocasiones"       "ocho"            "octubre"        
##  [633] "oficial"         "ojos"            "operación"       "opinión"        
##  [637] "oposición"       "orden"           "organización"    "origen"         
##  [641] "oro"             "otra"            "otras"           "otro"           
##  [645] "otros"           "p"               "pablo"           "paciente"       
##  [649] "pacientes"       "padre"           "padres"          "país"           
##  [653] "países"          "palabra"         "palabras"        "papel"          
##  [657] "para"            "parece"          "parecía"         "parís"          
##  [661] "parte"           "partes"          "participación"   "particular"     
##  [665] "partido"         "partidos"        "partir"          "pasa"           
##  [669] "pasado"          "pasar"           "paso"            "pasó"           
##  [673] "paz"             "pedro"           "película"        "pensar"         
##  [677] "peor"            "pequeña"         "pequeño"         "perdido"        
##  [681] "período"         "permite"         "pero"            "persona"        
##  [685] "personal"        "personas"        "pesar"           "pese"           
##  [689] "pesetas"         "peso"            "pie"             "piel"           
##  [693] "plan"            "plaza"           "plazo"           "población"      
##  [697] "poco"            "pocos"           "podemos"         "poder"          
##  [701] "podía"           "podrá"           "podría"          "policía"        
##  [705] "política"        "políticas"       "político"        "políticos"      
##  [709] "pone"            "poner"           "popular"         "por"            
##  [713] "porque"          "posibilidad"     "posibilidades"   "posible"        
##  [717] "posición"        "pp"              "práctica"        "precio"         
##  [721] "precios"         "precisamente"    "pregunta"        "premio"         
##  [725] "prensa"          "presencia"       "presenta"        "presente"       
##  [729] "presidente"      "primer"          "primera"         "primeras"       
##  [733] "primero"         "primeros"        "principal"       "principales"    
##  [737] "principio"       "principios"      "problema"        "problemas"      
##  [741] "proceso"         "producción"      "produce"         "producto"       
##  [745] "productos"       "profesional"     "programa"        "programas"      
##  [749] "pronto"          "propia"          "propio"          "propios"        
##  [753] "propuesta"       "próximo"         "proyecto"        "proyectos"      
##  [757] "prueba"          "psoe"            "pública"         "público"        
##  [761] "pudo"            "pueblo"          "pueda"           "puede"          
##  [765] "pueden"          "puedo"           "puerta"          "puerto"         
##  [769] "pues"            "puesto"          "punto"           "puntos"         
##  [773] "puso"            "que"             "qué"             "queda"          
##  [777] "quedó"           "quería"          "quien"           "quién"          
##  [781] "quienes"         "quiere"          "quiero"          "quizá"          
##  [785] "r"               "radio"           "rafael"          "razón"          
##  [789] "razones"         "real"            "realidad"        "realizar"       
##  [793] "recuerdo"        "recursos"        "reforma"         "régimen"        
##  [797] "región"          "relación"        "relaciones"      "república"      
##  [801] "respecto"        "respuesta"       "resto"           "resulta"        
##  [805] "resultado"       "resultados"      "reunión"         "revolución"     
##  [809] "rey"             "riesgo"          "río"             "rodríguez"      
##  [813] "rosa"            "s"               "sabe"            "saber"          
##  [817] "sabía"           "sala"            "salida"          "salir"          
##  [821] "salud"           "san"             "sangre"          "santa"          
##  [825] "santiago"        "se"              "sé"              "sea"            
##  [829] "sean"            "secretario"      "sector"          "sectores"       
##  [833] "seguir"          "según"           "segunda"         "segundo"        
##  [837] "seguridad"       "seguro"          "seis"            "semana"         
##  [841] "semanas"         "sentido"         "señaló"          "señor"          
##  [845] "señora"          "septiembre"      "ser"             "será"           
##  [849] "serán"           "sería"           "serie"           "servicio"       
##  [853] "servicios"       "si"              "sí"              "sido"           
##  [857] "siempre"         "siendo"          "siete"           "siglo"          
##  [861] "sigue"           "siguiente"       "siguientes"      "silencio"       
##  [865] "sin"             "sino"            "siquiera"        "sistema"        
##  [869] "sistemas"        "situación"       "sobre"           "social"         
##  [873] "sociales"        "socialista"      "sociedad"        "sol"            
##  [877] "sola"            "solamente"       "solo"            "sólo"           
##  [881] "solución"        "somos"           "son"             "soy"            
##  [885] "su"              "suelo"           "sueño"           "suerte"         
##  [889] "suficiente"      "superior"        "supuesto"        "sur"            
##  [893] "sus"             "tal"             "tales"           "también"        
##  [897] "tampoco"         "tan"             "tanto"           "tarde"          
##  [901] "te"              "teatro"          "técnica"         "televisión"     
##  [905] "tema"            "temas"           "tendrá"          "tenemos"        
##  [909] "tener"           "tengo"           "tenía"           "tenían"         
##  [913] "tenido"          "teoría"          "tercera"         "términos"       
##  [917] "texto"           "tiempo"          "tiempos"         "tiene"          
##  [921] "tienen"          "tierra"          "tipo"            "tipos"          
##  [925] "título"          "toda"            "todas"           "todavía"        
##  [929] "todo"            "todos"           "toma"            "tomar"          
##  [933] "torno"           "total"           "trabajadores"    "trabajar"       
##  [937] "trabajo"         "tras"            "trata"           "tratamiento"    
##  [941] "través"          "tres"            "tribunal"        "tu"             
##  [945] "tú"              "tuvo"            "u"               "última"         
##  [949] "último"          "últimos"         "un"              "una"            
##  [953] "unas"            "única"           "único"           "unidad"         
##  [957] "unidos"          "unión"           "universidad"     "uno"            
##  [961] "unos"            "uso"             "usted"           "va"             
##  [965] "valor"           "valores"         "vamos"           "van"            
##  [969] "varias"          "varios"          "ve"              "veces"          
##  [973] "ver"             "verdad"          "vez"             "vía"            
##  [977] "viaje"           "victoria"        "vida"            "viejo"          
##  [981] "viene"           "vino"            "vio"             "violencia"      
##  [985] "visita"          "vista"           "visto"           "vivir"          
##  [989] "voluntad"        "volver"          "volvió"          "voy"            
##  [993] "voz"             "vuelta"          "vuelve"          "y"              
##  [997] "ya"              "yo"              "zona"            "zonas"

# Encuentra todas las palabras que contengan al menos una vocal, y luego niégalo
sin_vocales_1 <- !str_detect(palabras, "[aáeéiíoóuúúü]")


sin_vocales_1
##    [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##   [13] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##   [25] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##   [37] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##   [49] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##   [61] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##   [73] FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##   [85] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE
##   [97] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [109] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [121] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [133] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [145] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [157] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [169] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [181] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [193] FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [205] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [217] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [229] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [241] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [253] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [265] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [277] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [289] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [301] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [313] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [325] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [337] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [349] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [361] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [373] FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE
##  [385] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [397] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [409] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [421] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [433] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [445] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [457] FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [469] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [481] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [493] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [505] FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [517] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [529] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [541] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [553] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [565] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [577] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [589] FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [601] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [613] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [625] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [637] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE
##  [649] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [661] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [673] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [685] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [697] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [709] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE
##  [721] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [733] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [745] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [757] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [769] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [781] FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [793] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [805] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE
##  [817] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [829] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [841] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [853] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [865] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [877] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [889] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [901] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [913] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [925] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [937] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [949] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [961] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [973] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [985] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE
##  [997] FALSE FALSE FALSE FALSE
# Encuentra todas las palabras consistentes solo en consonantes (no vocales)
sin_vocales_2 <- str_detect(palabras, "^[^aáeéiíoóuúúü]+$")

head(identical(sin_vocales_1, sin_vocales_2), 100)
## [1] TRUE

Suma la cantidad de palabras que no tienen vocales?

library(tidyverse)
df <- tibble(
  palabra = palabras, 
  i = seq_along(palabra)
) ## poner los datos en un dataframe 


df %>% 
  filter(str_detect(palabras, "x$")) # filtrar todas la palabras para solamente las terminan en **x**
## # A tibble: 1 × 2
##   palabra     i
##   <chr>   <int>
## 1 ex        338
df %>% 
  filter(str_detect(palabras, "z$")) # filtrar todas la palabras para solamente las terminan en **z**
## # A tibble: 10 × 2
##    palabra       i
##    <chr>     <int>
##  1 capaz       108
##  2 diez        232
##  3 gonzález    384
##  4 juez        470
##  5 lópez       502
##  6 luz         508
##  7 paz         673
##  8 rodríguez   812
##  9 vez         975
## 10 voz         993
library(readr)
fragmentos_neruda_sep <- read_csv("Datos/fragmentos_neruda_sep.csv")

fragmentos_neruda_sep
## # A tibble: 10 × 2
##       id texto                                                                  
##    <dbl> <chr>                                                                  
##  1     1 "\"Puedo\" \"escribir\" \"los\" \"versos\" \"más\" \"tristes\" \"esta\…
##  2     2 "\"Es\" \"tan\" \"corto\" \"el\" \"amor,\" \"y\" \"es\" \"tan\" \"larg…
##  3     3 "\"Me\" \"gustas\" \"cuando\" \"callas\" \"porque\" \"estás\" \"como\"…
##  4     4 "\"Para\" \"que\" \"nada\" \"nos\" \"separe\" \"que\" \"nada\" \"nos\"…
##  5     5 "\"En\" \"un\" \"beso\" \"sabrás\" \"todo\" \"lo\" \"que\" \"he\" \"ca…
##  6     6 "\"Te\" \"amo\" \"como\" \"se\" \"aman\" \"ciertas\" \"cosas\" \"oscur…
##  7     7 "\"Quiero\" \"hacer\" \"contigo\" \"lo\" \"que\" \"la\" \"primavera\" …
##  8     8 "\"Algún\" \"día\" \"en\" \"cualquier\" \"parte,\" \"en\" \"cualquier\…
##  9     9 "\"Si\" \"nada\" \"nos\" \"salva\" \"de\" \"la\" \"muerte,\" \"al\" \"…
## 10    10 "\"Podrán\" \"cortar\" \"todas\" \"las\" \"flores,\" \"pero\" \"no\" \…

Contar cuantas “a” hay en cada palabra con str_count()

#x= c( "Piña", "Manzana", "Toronja", "Jugo")


str_count(fragmentos_neruda_sep, "e")
##    id texto 
##     0    57

# En promedio, ¿cuántas vocales hay por palabra?
mean(str_count(palabras, "[aáeéiíoóuúü]"))
## [1] 2.72
mean(str_count(palabras, "[x]"))
## [1] 0.013

Contar cuantas vocales y consonantes hay en cada palabra

df %>% 
  mutate(
    vocales = str_count(palabra, "[aáeéiíoóuúü]"), # Cuenta cuantas vocales 
    consonantes = str_count(palabra, "[^aáeéiíoóuúü]") # cuenta cuantos consonantes
  ) |> head(n=30)
## # A tibble: 30 × 4
##    palabra         i vocales consonantes
##    <chr>       <int>   <int>       <int>
##  1 a               1       1           0
##  2 abril           2       2           3
##  3 acción          3       3           3
##  4 acciones        4       4           4
##  5 acerca          5       3           3
##  6 actitud         6       3           4
##  7 actividad       7       4           5
##  8 actividades     8       5           6
##  9 acto            9       2           2
## 10 actual         10       3           3
## # ℹ 20 more rows
  • los puntos y caracteres especiales
  1. Ejercicios:

Hacer los ejercicios en la sección 14.2.7.1 del libro en español


20.10 Anclas

  • ^ al principio
  • $ al final
  1. Ejercicios:

Hacer los ejercicios en la sección 14.2.8.1 del libro en español


20.11 Clases de caracteres y alternativas

  • [abc]

  • [^abc]

  • $ . | ? * + ( ) [ {

str_view(c("cómo", "como", "Raymond"), "c(ó|o)mo")
## [1] │ <cómo>
## [2] │ <como>
  1. Ejercicios:

Hacer los ejercicios en la sección 14.2.9.1 del libro en español


20.12 Repetición

  • ?, 0 o 1, precencia o auscencia
  • +, 1 o más
  • *, 0 o más
  • str_view()
  • {n} : exactamente n
  • {n, }: n o más
  • { , m}: no más de m
  • {n, m}: entre n y m
  • {n, m}?: la cadena más larga
  • {n, m}+?: la cadena más corta
  1. Ejercicios:

Hacer los ejercicios en la sección 14.2.10.1 del libro en español


20.13 Agrupamiento y referencias previas

  • str_view(frutas, “(..)\1”, match=TRUE)
  1. Ejercicios:

Hacer los ejercicios en la sección 14.2.11.1 del libro en español


20.14 Herramientas: Objetivos

  • Determinar qué cadenas coinciden con un patrón.
  • Encontrar la posición de una coincidencia.
  • Extraer el contenido de las coincidencias.
  • Remplazar coincidencias con nuevos valores.
  • Dividir una cadena de acuerdo a una coincidencia.

20.14.1 Detectar coincidencias

  • str_detect(x, “e”)
library(datos) 
#fruit
head(palabras)
## [1] "a"        "abril"    "acción"   "acciones" "acerca"   "actitud"
# Encuentra todas las palabras que contengan al menos una vocal, y luego niégalo
sin_vocales_1 <- !str_detect(palabras, "[aáeéiíoóuúúü]")

#sin_vocales_1
# Encuentra todas las palabras consistentes solo en consonantes (no vocales)
sin_vocales_2 <- str_detect(palabras, "^[^aáeéiíoóuúúü]+$")
#sin_vocales_1
head(identical(sin_vocales_1, sin_vocales_2), 30)
## [1] TRUE
#> [1] TRUE
  • str_subset()
  • seq_along()
  • str_count()
  1. Ejercicios:

Hacer los ejercicios en la sección 14.3.2 del libro en español


Ejercicio


20.15 Extraer coincidencias

  • str_extract()
  • str_extract_all()
  1. Ejercicios:

Hacer los ejercicios en la sección 14.3.3.1 del libro en español


20.16 Coincidencias agrupadas:

  • str_match*
sustantivo <- "(el|la|los|las|lo|un|una|unos|unas) ([^ ]+)"

tiene_sustantivo <- oraciones %>%
  str_subset(sustantivo)

#tiene_sustantivo
tiene_sustantivo %>% 
  str_extract(sustantivo)
##  [1] "los de"       "el camión"    "la mejor"     "la cuenta"    "las ruinas." 
##  [6] "la hoja"      "la cocina."   "la taza"      "el tanque."   "el calor"    
## [11] "el aire"      "lo en"        "el papel"     "la parte"     "el sofá"     
## [16] "lo de"        "lo curó"      "los actores." "la azul"      "el banco"    
## [21] "una llama"    "la cabeza."   "la ventana."  "la hierba"    "el sol"      
## [26] "el lugar"     "el sofá"      "un suéter"    "el gráfico"   "los encajes" 
## [31] "el verde"     "la caja"      "la pistola"   "los niños"    "una delgada" 
## [36] "lo en"        "la hierba"    "la primavera" "la es"
#>  [1] "los de"      "el camión"   "la mejor"    "la cuenta"   "las ruinas."
#>  [6] "la hoja"     "la cocina."  "la taza"     "el tanque."  "el calor"
  1. Ejercicios:

Hacer los ejercicios en la sección 14.3.4.1 del libro en español


20.17 Remplazar coincidencias

  • str_replace()
  • str_replace_all()
  1. Ejercicios:

Hacer los ejercicios en la sección 14.3.5.1 del libro en español


20.18 Divisiones

  • str_split()
  • str_split(” “, simplify=TRUE)
  • str_split(x, boundery(“word”))[[1]]
  1. Ejercicios:

Hacer los ejercicios en la sección 14.3.6.1 del libro en español


20.19 Otro tipos de patrones

  • regex(“x”, ignore_case=TRUE)
  • seperar números telefonicos

20.20 stringi:

  1. Ejercicios:

Hacer los ejercicios en la sección 14.3.6.1 del libro en español Buscar 3 funciones en stringi y aplica y explica las funciones con un set de datos.


20.21 El texto de Quijote

20.21.1 how to import a .txt file in R

quijote <- read_lines("Datos/el_quijote.txt")

head(quijote, n=10)
##  [1] "DON QUIJOTE DE LA MANCHA"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
##  [2] "Miguel de Cervantes Saavedra"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
##  [3] ""                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
##  [4] "PRIMERA PARTE"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       
##  [5] "CAPÍTULO 1: Que trata de la condición y ejercicio del famoso hidalgo D. Quijote de la Mancha"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
##  [6] "En un lugar de la Mancha, de cuyo nombre no quiero acordarme, no ha mucho tiempo que vivía un hidalgo de los de lanza en astillero, adarga antigua, rocín flaco y galgo corredor. Una olla de algo más vaca que carnero, salpicón las más noches, duelos y quebrantos los sábados, lentejas los viernes, algún palomino de añadidura los domingos, consumían las tres partes de su hacienda. El resto della concluían sayo de velarte, calzas de velludo para las fiestas con sus pantuflos de lo mismo, los días de entre semana se honraba con su vellori de lo más fino. Tenía en su casa una ama que pasaba de los cuarenta, y una sobrina que no llegaba a los veinte, y un mozo de campo y plaza, que así ensillaba el rocín como tomaba la podadera. Frisaba la edad de nuestro hidalgo con los cincuenta años, era de complexión recia, seco de carnes, enjuto de rostro; gran madrugador y amigo de la caza. Quieren decir que tenía el sobrenombre de Quijada o Quesada (que en esto hay alguna diferencia en los autores que deste caso escriben), aunque por conjeturas verosímiles se deja entender que se llama Quijana; pero esto importa poco a nuestro cuento; basta que en la narración dél no se salga un punto de la verdad. Es, pues, de saber, que este sobredicho hidalgo, los ratos que estaba ocioso (que eran los más del año) se daba a leer libros de caballerías con tanta afición y gusto, que olvidó casi de todo punto el ejercicio de la caza, y aun la administración de su hacienda; y llegó a tanto su curiosidad y desatino en esto, que vendió muchas hanegas de tierra de sembradura, para comprar libros de caballerías en que leer; y así llevó a su casa todos cuantos pudo haber dellos; y de todos ningunos le parecían tan bien como los que compuso el famoso Feliciano de Silva: porque la claridad de su prosa, y aquellas intrincadas razones suyas, le parecían de perlas; y más cuando llegaba a leer aquellos requiebros y cartas de desafío, donde en muchas partes hallaba escrito: la razón de la sinrazón que a mi razón se hace, de tal manera mi razón enflaquece, que con razón me quejo de la vuestra fermosura, y también cuando leía: los altos cielos que de vuestra divinidad divinamente con las estrellas se fortifican, y os hacen merecedora del merecimiento que merece la vuestra grandeza. Con estas y semejantes razones perdía el pobre caballero el juicio, y desvelábase por entenderlas, y desentrañarles el sentido, que no se lo sacara, ni las entendiera el mismo Aristóteles, si resucitara para sólo ello. No estaba muy bien con las heridas que don Belianis daba y recibía, porque se imaginaba que por grandes maestros que le hubiesen curado, no dejaría de tener el rostro y todo el cuerpo lleno de cicatrices y señales; pero con todo alababa en su autor aquel acabar su libro con la promesa de aquella inacabable aventura, y muchas veces le vino deseo de tomar la pluma, y darle fin al pie de la letra como allí se promete; y sin duda alguna lo hiciera, y aun saliera con ello, si otros mayores y continuos pensamientos no se lo estorbaran."
##  [7] "Tuvo muchas veces competencia con el cura de su lugar (que era hombre docto graduado en Sigüenza), sobre cuál había sido mejor caballero, Palmerín de Inglaterra o Amadís de Gaula; mas maese Nicolás, barbero del mismo pueblo, decía que ninguno llegaba al caballero del Febo, y que si alguno se le podía comparar, era don Galaor, hermano de Amadís de Gaula, porque tenía muy acomodada condición para todo; que no era caballero melindroso, ni tan llorón como su hermano, y que en lo de la valentía no le iba en zaga."                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   
##  [8] "En resolución, él se enfrascó tanto en su lectura, que se le pasaban las noches leyendo de claro en claro, y los días de turbio en turbio, y así, del poco dormir y del mucho leer, se le secó el cerebro, de manera que vino a perder el juicio. Llenósele la fantasía de todo aquello que leía en los libros, así de encantamientos, como de pendencias, batallas, desafíos, heridas, requiebros, amores, tormentas y disparates imposibles, y asentósele de tal modo en la imaginación que era verdad toda aquella máquina de aquellas soñadas invenciones que leía, que para él no había otra"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   
##  [9] "historia más cierta en el mundo."                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
## [10] "Decía él, que el Cid Ruy Díaz había sido muy buen caballero; pero que no tenía que ver con el caballero de la ardiente espada, que de sólo un revés había partido por medio dos fieros y descomunales gigantes. Mejor estaba con Bernardo del Carpio, porque en Roncesvalle había muerto a Roldán el encantado, valiéndose de la industria de Hércules, cuando ahogó a Anteo, el hijo de la Tierra, entre los brazos. Decía mucho bien del gigante Morgante, porque con ser de aquella generación gigantesca, que todos son soberbios y descomedidos, él solo era afable y bien criado; pero sobre todos estaba bien con Reinaldos de Montalbán, y más cuando le veía salir de su castillo y robar cuantos topaba, y cuando en Allende robó aquel ídolo de Mahoma, que era todo de oro, según dice su historia. Diera él, por dar una mano de coces al traidor de Galalón, al ama que tenía y aun a su sobrina de añadidura."

20.21.2 Cuantas oraciones tiene el text primer capitulo de Quijote?

length(quijote)
## [1] 2186

20.22 Cuantas palabras tiene el primer capítulo de Quijote?

quijote_palabras <- str_split(quijote, " ")

quijote_palabras_vector <- unlist(quijote_palabras)

head(quijote_palabras_vector) # obervar las primeras palabras
## [1] "DON"     "QUIJOTE" "DE"      "LA"      "MANCHA"  "Miguel"
length(quijote_palabras_vector) # cuantas palabras hay en total
## [1] 187019

20.23 Cuantas veces aparece la palabra “caballero” en el primer capitulo de Quijote?

sum(str_detect(quijote_palabras_vector, "caballero"))
## [1] 475

20.24 ¿Cuántas palabras tienen más de 10 letras?

sum(str_length(quijote_palabras_vector) > 10)
## [1] 5326

20.25 Cual es la palabra más larga

quijote_palabras_vector %>%
  str_length() %>%
  which.max() %>%
  quijote_palabras_vector[.]
## [1] "procuremos.Levántate,"

20.26 Cuantas veces aparace “Sancho Panza” en el primer capitulo de Quijote?

sum(str_detect(quijote, "Sancho Panza"))
## [1] 95

20.27 Cuantas veces aparace “Dios” en el primer capitulo de Quijote?

sum(str_detect(quijote, "Dios"))
## [1] 166

# Cuantas palabras tiene “ñ” en cualquier posición de la palabra? !str_detect(palabras, “[aáeéiíoóuúúü]”)

str_detect(quijote_palabras_vector, "e") |> head() # cuantas veces aparece la letra e en cada palabra
## [1] FALSE FALSE FALSE FALSE FALSE  TRUE
sum(str_detect(quijote_palabras_vector, "e")) # cuantas veces aparece la letra e en total
## [1] 96484

20.28 Cuantas palabras tienen ñ?

sum(str_detect(quijote_palabras_vector, "[aáeéiíoóuúúü]")) # cuantas veces aparece la letra ñ en cada palabra
## [1] 177633
sum(str_detect(quijote_palabras_vector, "[ñ]")) # cuantas veces aparece la letra ñ en total
## [1] 49227

20.29 Remover del texto todas las siguientes palabras

las palabras como “que”, “de”, “y”, “la”, “el”, “en”, “a”, “los”, “del”, “se”, “las”, “un”, “por”, “con”, “no”, “una”, “su”, “para”, “es”, “al”, “lo”, “como”, “más”, “pero”, “sus”, “le”, “ya”, “o”, “este”, “sí”, “porque”, “esta”, “entre”, “cuando”, “muy”, “sin”, “sobre”, “también”, “me”, “hasta”, “hay”, “donde”, “quien”, etc.

stop_words <- c("que", "de", "y", "la", "el", "en", "a", "los", "del", "se", 
                "las", "un", "por", "con", "no", "una", "su", "para", "es", 
                "al", "lo", "como", "más", "pero", "sus", "le", "ya", "o", 
                "este", "sí", "porque", "esta", "entre", "cuando", "muy", 
                "sin", "sobre", "también", "me", "hasta", "hay", "donde", 
                "quien")

quijote_palabras_vector_limpio <- quijote_palabras_vector[!str_detect(quijote_palabras_vector, 
                                  str_c("^", stop_words, "$", collapse = "|"))]
library(cranlogs)
cranlogs_badge("ggversa", summary = "grand-total")
## [1] "[![CRAN RStudio mirror downloads](https://cranlogs.r-pkg.org/badges/grand-total/ggversa?color=blue)](https://r-pkg.org/pkg/ggversa)"
cran_downloads(packages = "ggversa", when = "last-month")
##          date count package
## 1  2025-11-01     9 ggversa
## 2  2025-11-02     2 ggversa
## 3  2025-11-03    12 ggversa
## 4  2025-11-04    15 ggversa
## 5  2025-11-05     5 ggversa
## 6  2025-11-06     2 ggversa
## 7  2025-11-07     4 ggversa
## 8  2025-11-08     0 ggversa
## 9  2025-11-09     0 ggversa
## 10 2025-11-10     2 ggversa
## 11 2025-11-11    23 ggversa
## 12 2025-11-12     3 ggversa
## 13 2025-11-13     8 ggversa
## 14 2025-11-14     6 ggversa
## 15 2025-11-15     3 ggversa
## 16 2025-11-16     0 ggversa
## 17 2025-11-17     5 ggversa
## 18 2025-11-18    15 ggversa
## 19 2025-11-19     5 ggversa
## 20 2025-11-20     2 ggversa
## 21 2025-11-21     1 ggversa
## 22 2025-11-22     5 ggversa
## 23 2025-11-23     2 ggversa
## 24 2025-11-24     2 ggversa
## 25 2025-11-25     2 ggversa
## 26 2025-11-26     5 ggversa
## 27 2025-11-27     7 ggversa
## 28 2025-11-28     9 ggversa
## 29 2025-11-29     1 ggversa
## 30 2025-11-30     3 ggversa
# Replace start date with the earliest date ggversa is available on CRAN
df <- cran_downloads("ggversa", from = "2017-08-05", to = Sys.Date())

# Sum all daily downloads
total_downloads <- sum(df$count, na.rm = TRUE)
print(total_downloads)
## [1] 34938
#install.packages("devtools")
devtools::install_github("arunsrinivasan/cran.stats")
library(cran.stats)

# Get logs for a specific day
dt <- read_logs(start = as.Date("2025-11-09"),
                end   = as.Date("2025-11-09"))
## Fread(ing) logs    1 of 1 - 2025-11-09.csv (100%)
# Filter for ggversa and summarize downloads by country
library(data.table)
dt <- as.data.table(dt)
dt_ggversa <- dt[package == "ggversa", .N, by = country]
print(dt_ggversa)
## Empty data.table (0 rows and 2 cols): country,N
#install.packages("packageRank")
library(packageRank)

# Define target countries
target_countries <- c(
  "United States", "Puerto Rico", "Spain", "Mexico", "Argentina", "Colombia", "Chile", "Peru",
  "Venezuela", "Ecuador", "Guatemala", "Cuba", "Bolivia", "Honduras", "Paraguay", "El Salvador",
  "Nicaragua", "Costa Rica", "Panama", "Uruguay", "Dominican Republic", "Equatorial Guinea"
)

# Downloads for ggversa by country (latest day)
dates <- seq(as.Date("2025-10-01"), as.Date("2025-11-09"), by = "day")
results <- lapply(dates, function(d) {
  tryCatch({
    df <- packageCountry(packages = "ggversa", date = d)
    df$date <- d
    df
  }, error = function(e) NULL)
})



# Combine and filter
country_data <- bind_rows(results)
filtered_data <- country_data %>% filter(country %in% target_countries)

# Summarize
summary <- filtered_data %>%
  group_by(country) %>%
  summarise(total_downloads = sum(downloads)) %>%
  arrange(desc(total_downloads))

print(summary)

20.30 Contabilizar las palabras más comunes en el primer capitulo de Quijote

table(quijote_palabras_vector_limpio) %>%
  sort(decreasing = TRUE) %>%
  head(40)
## quijote_palabras_vector_limpio
##       si      más       mi       yo      tan      don    había       él 
##      899      882      851      814      750      713      653      627 
##       ni     todo      ser       ha      era     bien  vuestra        Y 
##      617      509      466      460      452      451      445      407 
##    todos     dijo      Don      fue       te     cual      así     sino 
##      372      348      345      343      340      326      321      313 
##     esto   Sancho     que,  Quijote    aquel   merced      dos    hacer 
##      312      312      310      310      293      286      282      279 
##    señor     ella   aunque Quijote,     otra       he      nos     cosa 
##      275      269      265      265      262      246      241      240
clean=str_replace_all(quijote_palabras_vector_limpio, "[,\\.\\!\\:\\'\\?]", "")

table(clean) %>%
  sort(decreasing = TRUE) %>%
  head(40)
## clean
##       más        si        yo        mi       tan        él       don     había 
##       958       917       886       876       750       737       718       668 
##   Quijote        ni      dijo    Sancho      todo      bien       ser       así 
##       668       620       579       560       560       507       503       489 
##       era      esto        ha   vuestra         Y     todos      cual    merced 
##       475       462       460       453       422       416       399       395 
##     señor       fue      ella       Don      pues        te      sino     hacer 
##       363       358       347       345       344       340       316       312 
##       que caballero       dos     aquel      otra      cosa    aunque     decir 
##       310       309       299       296       280       274       265       264

\b[^\\s];[^\\s]\b matches:

\b: word boundary [^\\s]: any number of non-space characters ;: the semicolon [^\\s]: more non-space characters \b: word boundary

words_with_semicolon <- str_extract_all(clean, "\\b[^\\s]*;[^\\s]*\\b")[[1]]

words_with_semicolon
## character(0)

Contabilizar la cantidad de veces los numeros aparecen en el texto

str(clean)
##  chr [1:111341] "DON" "QUIJOTE" "DE" "LA" "MANCHA" "Miguel" "Cervantes" ...
library(purrr)
numeros <- c("uno", "dos", "tres", "cuatro", "cinco", "seis", "siete", "ocho", "nueve", "diez")


clean <- str_replace_all(clean, "[[:punct:]]", "")
clean_text <- paste(clean, collapse = " ")
counts <- sapply(numeros, function(n) str_count(tolower(clean_text), fixed(n)))
names(counts)<- numeros
print(counts)
##    uno    dos   tres cuatro  cinco   seis  siete   ocho  nueve   diez 
##    445   1563    117     72     13     31      9     17      5     18

##  [1] "*** START OF THE PROJECT GUTENBERG EBOOK 11 ***"
##  [2] ""                                               
##  [3] "[Illustration]"                                 
##  [4] ""                                               
##  [5] ""                                               
##  [6] ""                                               
##  [7] ""                                               
##  [8] "Alice’s Adventures in Wonderland"               
##  [9] ""                                               
## [10] "by Lewis Carroll"
##  [1] "childhood: and how she would gather about her other little children,"   
##  [2] "and make _their_ eyes bright and eager with many a strange tale,"       
##  [3] "perhaps even with the dream of Wonderland of long ago: and how she"     
##  [4] "would feel with all their simple sorrows, and find a pleasure in all"   
##  [5] "their simple joys, remembering her own child-life, and the happy summer"
##  [6] "days."                                                                  
##  [7] ""                                                                       
##  [8] "THE END"                                                                
##  [9] ""                                                                       
## [10] "*** END OF THE PROJECT GUTENBERG EBOOK 11 ***"

20.30.1 Cuantas oraciones tiene el text de Alice?

## [1] 3384

20.30.2 Cuantas palabras tiene el texto de Alice?

## [1] "***"       "START"     "OF"        "THE"       "PROJECT"   "GUTENBERG"
## [1] 28017

20.30.3 Convertir todo a minusculas

Determinar cuantas veces aparece la palabra “alice” en el texto

## [1] 399

20.30.4 ¿Cuántas palabras tienen más de 10 letras?

## [1] 391

20.30.5 Remover todos las puntuaciones en el texto, usando “[[:punct:]]”

## [1] ""          "start"     "of"        "the"       "project"   "gutenberg"

20.30.6 Haz una lista de las 20 palabras más comunes en el texto de Alice

## Alice_palabras_vector_limpio
##   the         and    to     a   she    it    of  said     i alice    in   you 
##  1640  1538   846   721   632   537   526   511   462   401   385   367   360 
##   was  that    as   her    at    on  with 
##   357   276   262   248   209   193   181

Remover los espacios vacios

Haga una lista de las 20 palabras más comunes en el texto de Alice sin los espacios vacios, para averguar que removiste los espcios vacios

## Alice_palabras_vector_limpio
##   the   and    to     a   she    it    of  said     i alice    in   you   was 
##  1640   846   721   632   537   526   511   462   401   385   367   360   357 
##  that    as   her    at    on  with   all 
##   276   262   248   209   193   181   179

Ahora remueve todos ,los stopwords en ingles del texto de Alice usando la libreria stopwords

Ahora enseñe las 20 palabras más comunes en el texto de Alice sin los stopwords

## Alice_palabras_vector_limpio2
##    said   alice  little     one    know    like    went thought   queen    time 
##     462     385     129     101      85      85      83      74      68      68 
##     see    king    dont    well   began      im    mock     now  turtle gryphon 
##      66      61      60      60      58      57      57      57      56      55

Using the following list of main characters in the book, count how many times each character is mentioned in the text of Alice in Wonderland

  • Alice
  • White Rabbit
  • Mad Hatter
  • Hatter
  • Queen of Hearts
  • Queen
  • Cheshire Cat
  • March Hare
  • Caterpillar
  • Dormouse
  • King of Hearts
  • Gryphon
  • Mock Turtle
  • Dodo
  • Bill the Lizard
  • Knave of Hearts
characters <- c("Alice", "White Rabbit", "Rabbit", "Mad Hatter", "Hatter", "Queen of Hearts", "Queen",
                "Cheshire Cat","Cat", "March Hare", "Caterpillar", "Dormouse", 
                "King of Hearts", "King", "Gryphon", "Mock Turtle", "Dodo",  "Knave of Hearts")
##           Alice    White Rabbit          Rabbit      Mad Hatter          Hatter 
##             399              22              54               0              57 
## Queen of Hearts           Queen    Cheshire Cat             Cat      March Hare 
##               4              77               6              90              31 
##     Caterpillar        Dormouse  King of Hearts            King         Gryphon 
##              29              40               0             179              55 
##     Mock Turtle            Dodo Knave of Hearts 
##              57              13               3