Capítulo21 Cadena de Carácteres = STRINGS

Fecha de la ultima revisión

## [1] "2024-11-07"

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"
comilla_doble <- '\"' # ó '"'
comilla_simple <- '\'' # ó "'"

comilla_ampersand <- "&"

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

&

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

21.1 Caracteres especiales

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

21.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) ‘⁠`⁠’

⁠ ## 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\u0430\u042B\u043C\u043E\u043D\u0434, Asi se escribe mi nombre en ruso"
Raymond
## [1] "ҎаЫмонд, Asi se escribe mi nombre en ruso"

21.3 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_

21.3.1 El largo de una cadena de caracteres con str_length

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

21.3.2 Combinar cadenas con str_c

Nota aqui 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

21.4 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"

21.4.1 Seleccionar los caracteres al último de la palabra

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

21.4.2 Cambiar a todo minuscula

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

21.4.3 Cambiar a mayuscula

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

21.5 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


21.6 Buscar patrones

21.7 Coincidencia básica

Para visualizar patrones de letras

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

Ejemplo de como uno puede utiliza esas funciones

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

21.7.1 Detectar las palabras que comienzan con una letra específica con “^”

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

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

# ¿Qué proporción de palabras comunes terminan con una vocal?
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(x, "[o]$"))
## [1] 0.1666667
  • 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úúü]+$")

identical(sin_vocales_1, sin_vocales_2)
## [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

Contar cuantas “a” hay en cada palabra

x= c( "Piña", "Manzana", "Toronja", "Jugo")
str_count(x, "a")
## [1] 1 3 1 0
# 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
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
  )
## # A tibble: 1,000 × 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
## # ℹ 990 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


21.8 Anclas

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

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


21.9 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


21.10 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


21.11 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


21.12 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.

21.12.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
identical(sin_vocales_1, sin_vocales_2)
## [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


21.13 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


21.14 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


21.15 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


21.16 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


21.17 Otro tipos de patrones

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

21.18 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.