Saltar al contenido principal
LibreTexts Español

2.2: Uso de R para organizar y manipular datos

  • Page ID
    69294
  • \( \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}}\)

    Los datos en Table\(\PageIndex{1}\) deben recordarle un marco de datos, una forma de organizar los datos en R que introdujimos en el Capítulo 1. Aquí aprenderemos a crear un marco de datos que contenga los datos en Table\(\PageIndex{1}\) y aprenderemos cómo podemos hacernos del marco de datos.

    Creación de un marco de datos

    Para crear un marco de datos comenzamos por crear vectores para cada una de las variables. Tenga en cuenta que las letras son una constante en R que contiene las 26 letras minúsculas del alfabeto romano: aquí estamos usando solo las primeras seis letras para los identificadores de bolsa.

    bag_id = letras [1:6]
    año = c (2006, 2006, 2000, 2000, 1994, 1994)
    peso = c (1.74, 1.74, 0.80, 0.80, 10.0, 10.0)
    type = c (“cacahuete”, “maní”, “llano”, “llano”, “llano”, “llano”, “llano”)
    número_amarillo = c (2, 3, 1, 5, 56, 63)
    porcent_rojo = c (27.8, 4.35, 22.7, 20.8, 23.0, 21.9)
    total = c (18, 23, 22, 24, 331, 333)
    rango = c (“sexto”, “cuarto”, “quinto”, “tercero”, “segundo”, “primero”)

    Para crear el marco de datos, utilizamos la función data.frame () de R, pasándole los nombres de nuestros vectores, cada uno de los cuales debe ser de la misma longitud. Hay una opción dentro de esta función para tratar variables cuyos valores son cadenas de caracteres como factores, otro nombre para una variable categórica, usando el argumento stringsasFactors = TRUE. Como el valor predeterminado para este argumento depende de tu versión de R, es útil hacer explícita tu elección incluyéndola en tu código, como hacemos aquí.

    mm_data = data.frame (bag_id, year, weight, type, number_yellow, percent_red, total, rank, stringsasFactors = VERDADERO)
    mm_data

    bag_id año peso tipo número_amarillo porcento_rojo rango total

    1 a 2006 1.74 cacahuete 2 27.80 18 sexto

    2 b 2006 1.74 cacahuete 3 4.35 23 cuarto

    3 c 2000 0.80 llano 1 22.70 22 quinto

    4 d 2000 0.80 llano 5 20.80 24 tercio

    5 e 1994 10.00 llano 56 23.00 331 segundo

    6 f 1994 10.00 llano 63 21.90 333 primero

    Si examinamos la estructura de este conjunto de datos usando la función str () de R, vemos que bag_id, type y rank son factores y año, peso, número_amarillo, percent_red, y variables arenumerales totales, asignaciones que son consistentes con nuestro análisis anterior de los datos.

    str (mm_data)

    'data.frame': 6 obs. de 8 variables:

    $ bag_id: Factor w/ 6 niveles “a”, "b”, "c”, "d”,..: 1 2 3 4 5 6

    $ año: num 2006 2006 2000 2000 1994...

    $ Peso: num 1.74 1.74 0.8 0.8 10 10

    $ tipo: Factor con 2 niveles “cacahuete”, "simple”: 1 1 2 2 2 2 2

    $ número_amarillo: num 2 3 1 5 56 63

    $ porcentaj_rojo: num 27.8 4.35 22.7 20.8 23 21.9

    $ totales: num 18 23 22 24 331 333

    $ rango: Factor w/ 6 niveles “quinto”, "primero”,..: 5 3 1 6 4 2

    Finalmente, podemos usar la función como.factor () para que R trate una variable numérica como una variable categórica, como lo hacemos aquí para el año. Por qué podríamos desear hacer esto es un tema al que volveremos en capítulos posteriores.

    mm_año_as_factor = data.frame (bag_id, as.factor (año), porcent_rojo, total)

    str (mm_año_como_factor)

    'data.frame': 6 obs. de 4 variables:

    $ bag_id: Factor w/ 6 niveles “a”, "b”, "c”, "d”,..: 1 2 3 4 5 6

    $ como.factor.año.: Factor w/ 3 niveles “1994", "2000",..: 3 3 2 2 1 1

    $ porcentaj_rojo: num 27.8 4.35 22.7 20.8 23 21.9

    $ totales: num 18 23 22 24 331 33

    Creación de un nuevo marco de datos mediante la subdefinición de un marco de datos existente

    En el Capítulo 1.2 aprendimos a recuperar filas o columnas individuales de un marco de datos y asignarlas a un nuevo objeto. Aquí aprendemos a usar la función subset () más flexible de R para lograr lo mismo. Aquí, por ejemplo, recuperamos solo los datos para M&Ms simples.

    plain_mm = subconjunto (mm_data, type == “plain”)

    plain_mm

    bag_id año peso tipo número_amarillo porcento_rojo rango total

    3 c 2000 0.8 llano 1 22.7 22 quinto

    4 d 2000 0.8 llano 5 20.8 24 tercio

    5 e 1994 10.0 llano 56 23.0 331 segundo

    6 f 1994 10.0 llanura 63 21.9 333 primero

    Tenga en cuenta que type == “plain” usa un operador relacional para elegir solo aquellas filas en las que el tipo de variable tiene el valor plain. Aquí hay una lista de operadores relacionales:

    Mesa\(\PageIndex{2}\). Operadores Relacionales en R.
    operador uso significado
    < x < y x es menor que y
    > x > y x es mayor que y
    <= x <= y x es menor o igual a y
    >= x >= y x es mayor o igual que y
    == x == y x es exactamente igual a y
    ! = x! = y x no es igual a y

    Podemos unir variables usando el operador lógico &.

    mm_plain10 = subconjunto (mm_data, (peso == 10.0 y tipo == “llano”))

    mm_llano10

    bag_id año peso tipo número_amarillo porcento_rojo rango total

    5 e 1994 10 llano 56 23.0 331 segundo

    6 f 1994 10 llanura 63 21.9 333 primero

    También podemos reducir el número de variables devueltas usando el argumento select de la función subset (). En este ejemplo excluimos las muestras recolectadas antes del año 2000 y devolvemos solo el año, el número de M&Ms amarillas y el porcentaje de M&Ms rojas.

    mm_20xx = subconjunto (mm_data, año >= 2000, select = c (año, número_amarillo, porcent_rojo))

    mm_20xx

    número de año_amarillo por ciento_rojo

    1 2006 2 27.80

    2 2006 3 4.35

    3 2000 1 22.70

    4 2000 5 20.80


    This page titled 2.2: Uso de R para organizar y manipular datos is shared under a CC BY-NC-SA 4.0 license and was authored, remixed, and/or curated by David Harvey.