Saltar al contenido principal
LibreTexts Español

3.8: Almacenamiento de datos de texto

  • Page ID
    151365
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \) \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)\(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\) \(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\)\(\newcommand{\AA}{\unicode[.8,0]{x212B}}\)

    Muchas veces tus datos serán de naturaleza numérica, pero no siempre. A veces tus datos realmente necesitan ser descritos usando texto, no usando números. Para abordar esto, necesitamos considerar la situación en la que nuestras variables almacenan texto. Para crear una variable que almacene la palabra “hola”, podemos escribir esto:

    greeting <"hello"
    greeting
    ## [1] "hello"

    Al interpretar esto, es importante reconocer que las comillas aquí no son parte de la cadena en sí. Son simplemente algo que usamos para asegurarnos de que R sepa tratar los caracteres que encierran como un fragmento de datos de texto, conocido como una cadena de caracteres. En otras palabras, R trata a “hola” como una cadena que contiene la palabra “hola”; pero si hubiera escrito hola en su lugar, R iría a buscar una variable con ese nombre! También puede usar 'hello' para especificar una cadena de caracteres.

    Bien, así es como almacenamos el texto. A continuación, es importante reconocer que cuando hacemos esto, R almacena toda la palabra “hola” como un solo elemento: nuestra variable de saludo no es un vector de cinco letras diferentes. Más bien, tiene un solo elemento, y ese elemento corresponde a toda la cadena de caracteres “hola”. Para ilustrar esto, si realmente le pido a R que encuentre el primer elemento de saludo, imprime toda la cadena:

    greeting[1]
    ## [1] "hello"

    Por supuesto, no hay razón por la que no pueda crear un vector de cadenas de caracteres. Por ejemplo, si tuviéramos que continuar con el ejemplo de mis intentos de mirar los datos de ventas mensuales de mi libro, una variable que podría querer incluiría los nombres de todos los 12 meses. ^ [Aunque en realidad no hay necesidad real de hacer esto, ya que R tiene una variable incorporada llamada month.name] que puedes usar para este propósito. Para hacerlo, podría escribir un comando como este

    months <c("January", "February", "March", "April", "May", "June",
                "July", "August", "September", "October", "November", 
                "December")

    Se trata de un vector de caracteres que contiene 12 elementos, cada uno de los cuales es el nombre de un mes. Entonces, si quisiera que R me dijera el nombre del cuarto mes, todo lo que haría es esto:

    months[4] 
    ## [1] "April"

    Trabajar con texto

    Trabajar con datos de texto es algo más complicado que trabajar con datos numéricos, y discuto algunas de las ideas básicas en la Sección 7.8, pero para fines del capítulo actual solo necesitamos este boceto desnudo. La única otra cosa que quiero hacer antes de seguir adelante es mostrarte un ejemplo de una función que se puede aplicar a datos de texto. Hasta ahora, la mayoría de las funciones que hemos visto (es decir, sqrt (), abs () y round ()) solo tienen sentido cuando se aplican a datos numéricos (por ejemplo, no se puede calcular la raíz cuadrada de “hello”), y hemos visto una función que se puede aplicar a prácticamente cualquier variable o vector ( es decir, longitud ()). Entonces podría ser agradable ver un ejemplo de una función que se puede aplicar al texto.

    La función que te voy a presentar se llama nchar (), y lo que hace es contar el número de caracteres individuales que componen una cadena. Recordemos antes que cuando intentamos calcular la longitud () de nuestra variable de saludo devolvió un valor de 1: la variable de saludo contiene solo una cadena, que pasa a ser “hola”. Pero, ¿y si quiero saber cuántas letras hay en la palabra? Claro, podría contarlos, pero eso es aburrido, y más al punto es una estrategia terrible si lo que quería saber era el número de letras en Guerra y Paz. Ahí es donde la función nchar () es útil:

    nchar( x = greeting )
    ## [1] 5

    Eso tiene sentido, ya que de hecho hay 5 letras en la cadena “hola”. Mejor aún, puedes aplicar nchar () a vectores enteros. Entonces, por ejemplo, si quiero que R me diga cuántas letras hay en los nombres de cada uno de los 12 meses, puedo hacer esto:

    nchar( x = months )
    
    ##  [1] 7 8 5 5 3 4 4 6 9 7 8 8

    Entonces es bueno saberlo. La función nchar () puede hacer un poco más que esto, y hay muchas otras funciones que puedes hacer para extraer más información del texto o hacer todo tipo de cosas elegantes. Sin embargo, ¡el objetivo aquí no es enseñar nada de eso! El objetivo en este momento es solo ver un ejemplo de una función que realmente funciona cuando se aplica al texto.


    This page titled 3.8: Almacenamiento de datos de texto is shared under a CC BY-SA 4.0 license and was authored, remixed, and/or curated by Danielle Navarro via source content that was edited to the style and standards of the LibreTexts platform; a detailed edit history is available upon request.