2015-09-03

Seleccionar un porcentaje de filas un data frame en R

Title

Problema

Queremos seleccionar un porcentajes de filas de un data frame.

Soluciones

Utilizamos el conjunto de datos ToothGrowth, que cuenta con 60 filas. Lo partiremos en dos, la primera con un 70% de las filas (42) y la segunda con un 30% (18 filas). Aunque en este ejemplo no es necesario, empleamos la función round, para que en el caso de que por ejemplo el número de filas sea 6,6 devuelva 7 filas en lugar de 6.

  • head y tal
  • head(ToothGrowth, round(nrow(ToothGrowth)*0.7))
    tail(ToothGrowth, round(nrow(ToothGrowth)*0.3))
    
  • Filtrando con índices
  • porcentaje = round(0.7*nrow(ToothGrowth))
    ToothGrowth[1:porcentaje,]
    ToothGrowth[-(1:porcentaje),]
    
  • Usando dplyr
  • porcentaje = round(0.7*nrow(ToothGrowth))
    library(dplyr)
    slice(ToothGrowth, 1:porcentaje)
    slice(ToothGrowth, -(1:porcentaje))

    Resultado

    Source: local data frame [42 x 3]
    
        len supp dose
    1   4.2   VC  0.5
    2  11.5   VC  0.5
    3   7.3   VC  0.5
    4   5.8   VC  0.5
    5   6.4   VC  0.5
    6  10.0   VC  0.5
    7  11.2   VC  0.5
    8  11.2   VC  0.5
    9   5.2   VC  0.5
    10  7.0   VC  0.5
    ..  ...  ...  ...
    
    Source: local data frame [18 x 3]
    
        len supp dose
    1  23.6   OJ    1
    2  26.4   OJ    1
    3  20.0   OJ    1
    4  25.2   OJ    1
    5  25.8   OJ    1
    6  21.2   OJ    1
    7  14.5   OJ    1
    8  27.3   OJ    1
    9  25.5   OJ    2
    10 26.4   OJ    2
    11 22.4   OJ    2
    12 24.5   OJ    2
    13 24.8   OJ    2
    14 30.9   OJ    2
    15 26.4   OJ    2
    16 27.3   OJ    2
    17 29.4   OJ    2
    18 23.0   OJ    2
    

    Entradas relacionadas

    Referencias

    No hay comentarios:

    Publicar un comentario

    Nube de datos