132 votes

Sélectionnez les 4 premières lignes d'un data.frame en R

Comment puis-je sélectionner les 4 premières lignes d'un data.frame:

              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

175voto

Eduardo Leoni Points 4470

Utilisez tête :

dnow <- data.frame(x=rnorm(100), y=runif(100))
head(dnow,4) ## par défaut 6

1 votes

Bonjour, et si vous voulez obtenir les lignes 5 à 7?

0 votes

Vous pouvez utiliser la réponse "index" mentionnée ailleurs. Dans cette situation, j'utilise normalement la fonction slice dans dplyr. (Le comportement dépend du regroupement.)

154voto

Shane Points 40885

Utilisation de l'indice :

df[1:4,]

Où les valeurs entre parenthèses peuvent être interprétées comme logiques, numériques ou de caractères (correspondant aux noms respectifs) :

df[indice.ligne, indice.colonne]

Consultez l'aide (`[`) pour plus de détails sur ce sujet, et lisez aussi à propos des matrices d'indices dans l'Introduction à R.

5 votes

Cela fonctionne également si vous voulez les quatre premières lignes d'une seule colonne. Pour obtenir les quatre premières valeurs de réponse : df[1:4, "Response"].

30voto

Giacomo Points 640

Si quelqu'un est intéressé par une solution dplyr, c'est très intuitif :

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

14voto

Si vous avez moins de 4 lignes, vous pouvez utiliser la fonction head ( head(data, 4) ou head(data, n=4)) et cela fonctionne à merveille. Mais, supposons que nous avons l'ensemble de données suivant avec 15 lignes

>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

Disons que vous voulez sélectionner les 10 premières lignes. La manière la plus simple de le faire serait 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

Cependant, si vous essayez de récupérer les 19 premières lignes et voir ce qui se passe - vous obtiendrez des valeurs manquantes

> 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.1      NA  NA     NA           
NA.2      NA  NA     NA           
NA.3      NA  NA     NA           

et avec la fonction head(),

> 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

J'espère que cela vous aide!

12voto

Ole Petersen Points 642

Pour un DataFrame, il suffit de taper

head(data, num=10L)

pour obtenir les 10 premiers par exemple.

Pour un data.frame, il suffit de taper

head(data, 10)

pour obtenir les premiers 10.

3 votes

Comment cette réponse est-elle différente de la réponse acceptée qui a été publiée il y a 5 ans avant cette réponse? stackoverflow.com/a/2667843 Ajoute-t-elle des informations nouvelles?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X