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
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"
Caracteres especiales en cadenas de caracteres
## [1] "\""
## [1] "'"
## [1] "&"
&
Backslash
## [1] "\"" "\\"
## "
## \
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
## [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"
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.2 Combinar cadenas con str_c
Nota aquí 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
20.5 Dividir cadenas basado en la posición de los caracteres en la cadena
- str_sub()
## [1] "P" "M" "T"
20.6 You can also use str_sub() to modify strings:
## [1] "ABCDEF"
## [1] "BBCDEK"
## [1] "BBCDGHIJF"
## [1] "BBCBCEF"
## [1] "BF"
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?
## [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
20.9 Coincidencia básica
Para visualizar patrones de letras
- str_view()
- str_view( , .x.)
## [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
## [1] TRUE FALSE FALSE FALSE TRUE FALSE TRUE
## [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.
## [1] "Piña" "Manzana" "Toronja" "Jugo" "Monique" "Raymond" "mami"
## [1] 1
## [1] 2
## [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
## [1] 0.1428571
Dataset: palabras
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úúü]+$")
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()
## id texto
## 0 57
## [1] 2.72
## [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
- Ejercicios:
Hacer los ejercicios en la sección 14.2.7.1 del libro en español
20.10 Anclas
- ^ al principio
- $ al final
- 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]
$ . | ? * + ( ) [ {
## [1] │ <cómo>
## [2] │ <como>
- 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
- 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)
- 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”)
## [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
- str_subset()
- seq_along()
- str_count()
- 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()
- 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"- 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()
- 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]]
- Ejercicios:
Hacer los ejercicios en la sección 14.3.6.1 del libro en español
20.20 stringi:
- 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
## [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.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"
## [1] 187019
20.27 Cuantas veces aparace “Dios” en el primer capitulo de Quijote?
## [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
## [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
## [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 = "|"))]## [1] "[](https://r-pkg.org/pkg/ggversa)"
## 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
## 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
## character(0)
Contabilizar la cantidad de veces los numeros aparecen en el texto
## 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.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.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