2017-05-02

Cómo dividir un data frame en partes iguales y quedarnos con una de ellas

Problema

Queremos dividir un data frame en 5 partes iguales y quedarnos con una de ellas, en nuestro ejemplo la tercera.

df<- data.frame(data=(1:100))
library(tibble)
as_tible(df)
# A tibble: 100 × 1
    data
   
1      1
2      2
3      3
4      4
5      5
6      6
7      7
8      8
9      9
10    10
# ... with 90 more rows

Solución

Creamos una columna con la función ntile que nos indica cada una de las 5 partes del data frame. Filtramos el data frame quedándonos con la tercera parte.

library(dplyr)
df[ntile(df$data, 5) == 3, ]
df %>% 
  mutate(n = ntile(data, 5)) %>% 
  filter(n == 3) %>% 
  select(data)

Resultado

   data
1    41
2    42
3    43
4    44
5    45
6    46
7    47
8    48
9    49
10   50
11   51
12   52
13   53
14   54
15   55
16   56
17   57
18   58
19   59
20   60

Entradas relacionadas

Referencias

No hay comentarios:

Publicar un comentario

Nube de datos