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
- Dividir y guardar como ficheros subconjuntos de un data frame con R
- Dividir aleatoriamente los datos en dos partes con R
- Muestra aleatoria de filas de un data frame en R
- Muestra aleatoria de filas por grupos en R
Referencias
No hay comentarios:
Publicar un comentario