Wählen Sie die ersten 4 Zeilen eines Datenrahmens in R aus

107

Wie kann ich die ersten 4 Zeilen eines auswählen 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
Moe
quelle

Antworten:

152

Verwendung head:

dnow <- data.frame(x=rnorm(100), y=runif(100))
head(dnow,4) ## default is 6
Eduardo Leoni
quelle
1
Hallo, was ist, wenn Sie die Zeilen 5 bis 7 erhalten möchten?
Bustergun
Sie können die an anderer Stelle angegebene "Index" -Antwort verwenden. In dieser Situation verwende ich normalerweise die Slice-Funktion in dplyr. (Verhalten hängt von der Gruppierung ab.)
Eduardo Leoni
127

Verwenden des Index:

df[1:4,]

Wo die Werte in Klammern entweder als logisch, numerisch oder als Zeichen interpretiert werden können (passend zu den jeweiligen Namen):

df[row.index, column.index]

Lesen Sie die Hilfe (`[`), um weitere Informationen zu diesem Thema zu erhalten, und lesen Sie auch die Indexmatrizen in der Einführung zu R.

Shane
quelle
4
Dies funktioniert auch, wenn Sie die ersten vier Zeilen aus nur einer Spalte möchten. So erhalten Sie die ersten vier Antwortwerte : df[1:4, "Response"].
Iain Samuel McLean Elder
19

Wenn jemand an einer dplyrLösung interessiert ist, ist dies sehr intuitiv:

dt <- dt %>%
  slice(1:4)
Giacomo
quelle
12

Wenn Sie weniger als 4 Zeilen haben, können Sie die headFunktion ( head(data, 4)oder head(data, n=4)) verwenden und sie funktioniert wie ein Zauber. Angenommen, wir haben den folgenden Datensatz mit 15 Zeilen

>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

Angenommen, Sie möchten die ersten 10 Zeilen auswählen. Der einfachste Weg wäre es 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

Angenommen, Sie versuchen, die ersten 19 Zeilen abzurufen und zu sehen, was passiert. Es fehlen Werte

> 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>

und mit der Funktion 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

Ich hoffe das hilft!

Desta Haileselassie Hagos
quelle
10

Bei DataFrame kann man einfach tippen

head(data, num=10L)

um zum Beispiel die ersten 10 zu bekommen.

Für einen data.frame kann man einfach tippen

head(data, 10)

um die ersten 10 zu bekommen.

Ole Petersen
quelle
Wie unterscheidet sich diese Antwort von der akzeptierten Antwort, die vor 5 Jahren vor dieser Antwort veröffentlicht wurde? stackoverflow.com/a/2667843 Fügt es neue Informationen hinzu?
Ronak Shah