2012-08-29 7 views

Respuesta

19

head y tail son funciones realmente útiles.

head(sort(Forbes2000$profits,decreasing=TRUE), n = 50) 

Si desea que las primeras 50 filas de la hoja.de.datos, a continuación, puede utilizar la función de arrangeplyr para ordenar la data.frame y luego usar head

library(plyr) 

head(arrange(Forbes2000,desc(profits)), n = 50) 

cuenta que me envolvió en profits una llamada al desc lo que significa que ordenará en orden decreciente.

a trabajar sin plyr

head(Forbes2000[order(Forbes2000$profits, decreasing= T),], n = 50) 
+0

God I love plyr. – bstockton

7

Uso order para ordenar la data.frame, a continuación, utilizar head para obtener sólo las primeras 50 filas.

data("Forbes2000", package = "HSAUR") 
head(Forbes2000[order(Forbes2000$profits, decreasing=TRUE), ], 50) 
2

Puede utilizar rank de dplyr.

library(dplyr) 
    top_fifty <- Forbes2000 %>% 
     filter(rank(desc(profits))<=50) 

Este ordena los datos en orden descendente y sólo mantiene los valores en el que el rango es de menos de o igual a 50 (es decir, la parte superior 50).
Dplyr es muy útil. Los comandos y la sintaxis de encadenamiento son muy fáciles de entender. 10/10 lo recomendaría.

+0

uno también podría usar 'top_n (n = 50, wt = beneficios)' en lugar de 'filter (...)' – andrasz

0

Mnel tiene razón en que, en general, desea usar las funciones head() y tail() junto con una función de clasificación. Sin embargo, debo mencionar que para los conjuntos de datos medianos, el método de Vince funciona más rápido. Si no ha utilizado la cabeza() o la cola(), entonces se podría utiliza el operador de llamada básica inciso [] ....

library(plyr) 
x = arrange(Forbes2000,desc(profits)) 
x = x[1:50,] 
#Or using Order 
x = Forbes2000[order(Forbes2000$profits, decreasing= T),] 
x = x[1:50,] 

Sin embargo, realmente no recomendaría la cabeza(), cola() , o funciones de filtro() porque el operador regular [] supone que sus datos están estructurados en matriz o formato de matriz dibujados fácilmente. (Afortunadamente, esto responde la pregunta de Teja)

Ahora, qué pacakage eliges es en gran medida subjetivo. Sin embargo, al leer los comentarios de las personas, diré que la opción de usar el orden de arreglos de plyr(), {bases}() con {utils} head() y colas, o plyr() depende en gran medida del tamaño de la memoria y de la fila de su conjunto de datos. Podría entrar en más detalles sobre cómo Plyr y, a veces Dplyr tienen problemas con grandes conjuntos de datos complejos, pero no quiero salir del tema.

P.S. Esta es una de las primeras veces que respondo, así que los comentarios son apreciados.

Cuestiones relacionadas