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(ToothGrowth, round(nrow(ToothGrowth)*0.7))
tail(ToothGrowth, round(nrow(ToothGrowth)*0.3))
porcentaje = round(0.7*nrow(ToothGrowth))
ToothGrowth[1:porcentaje,]
ToothGrowth[-(1:porcentaje),]
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
- Muestra aleatoria de filas por grupos en R
- Muestra aleatoria de filas de un data frame en R
- ¿Cómo seleccionar todas las columnas de un data frame con dplyr?
- Seleccionar sólo las columnas que contengan NA en R
Referencias
No hay comentarios:
Publicar un comentario