Problema
Deseamos extraer una muestra aleatoria de filas de un data frame en R.
Solución
Emplearemos los datos incluidos en el paquete hflights. Es un data frame de 227.496 filas y 21 columnas que contiene información sobre los vuelos que parten de los aeropuertos de Houston: IAH (George Bush Intercontinental) y HOU (Houston Hobby).
require(hflights)
head(hflights)
- Paquete base
set.seed(1)
hflights[sample(nrow(hflights), 10), ] # 10 filas
# Mostramos solamente 5 columnas:
hflights[sample(nrow(hflights), 10), 1:5]
Year Month DayofMonth DayOfWeek DepTime
1366969 2011 3 14 1 1825
1040415 2011 3 12 6 1745
4202032 2011 9 18 7 915
2209673 2011 5 16 1 1521
4693709 2011 10 15 6 1350
3107473 2011 7 23 6 1644
4323034 2011 9 28 3 1739
5987852 2011 12 17 6 800
2206152 2011 5 18 3 736
4699698 2011 10 6 4 748
- dplyr
hflights %>%
sample_n(10) %>%
select(1:5)
- sqldf
require(sqldf)
sqldf("SELECT * FROM hflights ORDER BY RANDOM(*) LIMIT 10")
La desventaja con sqldf es que no podemos generar números pseudoaletorios con set.seed para obtener los mismos resultados y que sean reproducibles pues la función RANDOM de SQLITE no lo permite.
Entradas relacionadas
No hay comentarios:
Publicar un comentario