2010-04-19 20 views
72

¿Cómo puedo seleccionar las 4 primeras filas de una data.frame:4 primeras filas de una hoja.de.datos en I

   Weight Response 
1 Control  59  0.0 
2 Treatment  90  0.8 
3 Treatment  47  0.1 
4 Treamment 106  0.1 
5 Control  85  0.7 
6 Treatment  73  0.6 
7 Control  61  0.2 

Respuesta

106

Uso head:

dnow <- data.frame(x=rnorm(100), y=runif(100)) 
head(dnow,4) ## default is 6 
83

utilizando el índice:

df[1:4,] 

Cuando los valores entre paréntesis puede interpretarse como sea lógico, numérico, o el carácter (búsqueda de los nombres respectivos):

df[row.index, column.index] 

Lee ayuda (`[`) para obtener más detalles sobre este tema, y ​​también leer sobre index matrices en la Introducción a R.

+2

Esto también funciona si desea que las cuatro primeras filas de una sola columna. Para obtener los primeros cuatro valores de respuesta: 'df [1: 4," Response "]'. –

6

Durante al trama de datos se puede simplemente escribir

head(data, num=10L) 

para conseguir el primer 10 para ejemplo.

Para una hoja.de.datos uno puede simplemente escribir

head(data, 10) 

para conseguir el primer

10.
6

Si tiene menos de 4 filas, puede utilizar la función head (head(data, 4) o head(data, n=4)) y funciona a las mil maravillas. Pero supongamos que tenemos el siguiente conjunto de datos con 15 filas

>data <- data <- read.csv("./data.csv", sep = ";", header=TRUE) 

>data 
LungCap Age Height Smoke Gender Caesarean 
1 6.475 6 62.1 no male  no 
2 10.125 18 74.7 yes female  no 
3 9.550 16 69.7 no female  yes 
4 11.125 14 71.0 no male  no 
5 4.800 5 56.9 no male  no 
6 6.225 11 58.7 no female  no 
7 4.950 8 63.3 no male  yes 
8 7.325 11 70.4 no male   no 
9 8.875 15 70.5 no male  no 
10 6.800 11 59.2 no male  no 
11 6.900 12 59.3 no male  no 
12 6.100 13 59.4 no male  no 
13 6.110 14 59.5 no male  no 
14 6.120 15 59.6 no male  no 
15 6.130 16 59.7 no male  no 

Digamos que desea seleccionar las primeras 10 filas. La forma más fácil de hacerlo sería data[1:10, ].

> data[1:10,] 
    LungCap Age Height Smoke Gender Caesarean 
1 6.475 6 62.1 no male  no 
2 10.125 18 74.7 yes female  no 
3 9.550 16 69.7 no female  yes 
4 11.125 14 71.0 no male  no 
5 4.800 5 56.9 no male  no 
6 6.225 11 58.7 no female  no 
7 4.950 8 63.3 no male  yes 
8 7.325 11 70.4 no male   no 
9 8.875 15 70.5 no male  no 
10 6.800 11 59.2 no male  no 

Sin embargo, digamos que intenta recuperar las primeras 19 filas y ver los lo que sucede - los valores habrá que faltan

> data[1:19,] 
    LungCap Age Height Smoke Gender Caesarean 
1  6.475 6 62.1 no male  no 
2  10.125 18 74.7 yes female  no 
3  9.550 16 69.7 no female  yes 
4  11.125 14 71.0 no male  no 
5  4.800 5 56.9 no male  no 
6  6.225 11 58.7 no female  no 
7  4.950 8 63.3 no male  yes 
8  7.325 11 70.4 no male   no 
9  8.875 15 70.5 no male  no 
10  6.800 11 59.2 no male  no 
11  6.900 12 59.3 no male  no 
12  6.100 13 59.4 no male  no 
13  6.110 14 59.5 no male  no 
14  6.120 15 59.6 no male  no 
15  6.130 16 59.7 no male  no 
NA  NA NA  NA <NA> <NA>  <NA> 
NA.1  NA NA  NA <NA> <NA>  <NA> 
NA.2  NA NA  NA <NA> <NA>  <NA> 
NA.3  NA NA  NA <NA> <NA>  <NA> 

y con la función de cabeza(),

> head(data, 19) # or head(data, n=19) 
    LungCap Age Height Smoke Gender Caesarean 
1 6.475 6 62.1 no male  no 
2 10.125 18 74.7 yes female  no 
3 9.550 16 69.7 no female  yes 
4 11.125 14 71.0 no male  no 
5 4.800 5 56.9 no male  no 
6 6.225 11 58.7 no female  no 
7 4.950 8 63.3 no male  yes 
8 7.325 11 70.4 no male   no 
9 8.875 15 70.5 no male  no 
10 6.800 11 59.2 no male  no 
11 6.900 12 59.3 no male  no 
12 6.100 13 59.4 no male  no 
13 6.110 14 59.5 no male  no 
14 6.120 15 59.6 no male  no 
15 6.130 16 59.7 no male  no 

Espero que esta ayuda!

2

En caso de que alguien está interesado en dplyr solución, es muy intuitiva:

dt <- dt %>% 
    slice(1:4) 
Cuestiones relacionadas