2015-04-20

Muestra aleatoria de filas de un data frame en R

Title

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

Nube de datos