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

Antworten:


152

Verwendung head:

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

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.


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)

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!


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.


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.