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
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"
## [1] "El segundo sexo: Simone de Beauvoir"
## [1] "El segundo sexo \\ Simone de Beauvoir"
## [1] "\""
## [1] "'"
## [1] "&"
&
## [1] "\"" "\\"
## "
## \
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
## [1] "µ"
## [1] "¶"
## [1] "¡"
## [1] "Ǽ¶"
Escribir si nombre en el alfabeto Cyrilico
- Vea este enlace para conocer el alfabeto cyrilico
## [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.2 Combinar cadenas con str_c
Nota aqui que une la primera oración con la segunda oración
## [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()
## [1] "Mi pelicula favorita es Cinema Paraiso"
## [2] NA
## [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()
## [1] "P" "M" "T"
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?
## [1] "Piña" "Manzana" "Toronja"
## [1] 2 1 3
## [1] "Manzana" "Piña" "Toronja"
- Ejercicios:
Hacer los ejercicios en la sección 14.2.5 del libro en español
21.7 Coincidencia básica
Para visualizar patrones de letras
- str_view()
- str_view( , .x.)
## [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
## [1] TRUE FALSE FALSE FALSE TRUE FALSE
## [1] TRUE FALSE FALSE FALSE FALSE FALSE
21.7.1 Detectar las palabras que comienzan con una letra específica con “^”
## [1] "Piña" "Manzana" "Toronja" "Jugo" "Monique" "Raymond"
## [1] 0
## [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?
## [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
## [1] 1 3 1 0
## [1] 2.72
## [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
- Ejercicios:
Hacer los ejercicios en la sección 14.2.7.1 del libro en español
21.8 Anclas
- ^ al principio
- $ al final
- 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]
$ . | ? * + ( ) [ {
## [1] │ <cómo>
## [2] │ <como>
- 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
- 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)
- 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”)
## [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
- str_subset()
- seq_along()
- str_count()
- 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()
- 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"
- 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()
- Ejercicios:
Hacer los ejercicios en la sección 14.3.5.1 del libro en español