Pilih 4 baris pertama dari data.frame di R

109

Bagaimana cara memilih 4 baris pertama dari a 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
sumber

Jawaban:

154

Penggunaan head:

dnow <- data.frame(x=rnorm(100), y=runif(100))
head(dnow,4) ## default is 6
Eduardo Leoni
sumber
1
Halo, bagaimana jika Anda ingin mendapatkan baris 5 sampai 7?
Bustergun
Anda dapat menggunakan jawaban "indeks" yang ditunjukkan di tempat lain. Dalam situasi ini saya biasanya menggunakan fungsi slice di dplyr. (Perilaku tergantung pada pengelompokan.)
Eduardo Leoni
129

Menggunakan indeks:

df[1:4,]

Di mana nilai dalam tanda kurung dapat diartikan sebagai logika, numerik, atau karakter (cocok dengan nama masing-masing):

df[row.index, column.index]

Baca bantuan (`[`) untuk detail lebih lanjut tentang subjek ini, dan juga baca tentang matriks indeks di Pengantar R.

Shane
sumber
4
Ini juga berfungsi jika Anda menginginkan empat baris pertama hanya dari satu kolom. Untuk mendapatkan empat pertama nilai-nilai respon: df[1:4, "Response"].
Iain Samuel McLean Penatua
19

Jika seseorang tertarik dengan dplyrsolusi, ini sangat intuitif:

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

Jika Anda memiliki kurang dari 4 baris, Anda dapat menggunakan headfungsi ( head(data, 4)atau head(data, n=4)) dan berfungsi seperti pesona. Tapi, asumsikan kita memiliki dataset berikut dengan 15 baris

>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

Misalnya, Anda ingin memilih 10 baris pertama. Cara termudah untuk melakukannya adalah 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

Namun, katakanlah Anda mencoba mengambil 19 baris pertama dan melihat apa yang terjadi - Anda akan memiliki nilai yang hilang

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

dan dengan fungsi 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

Semoga bantuan ini!

Desta Haileselassie Hagos
sumber
10

Untuk di DataFrame seseorang cukup mengetik

head(data, num=10L)

untuk mendapatkan 10 yang pertama misalnya.

Untuk data.frame, cukup ketik

head(data, 10)

untuk mendapatkan 10 yang pertama.

Ole Petersen
sumber
Bagaimana jawaban ini berbeda dari jawaban yang diterima yang diposting 5 tahun yang lalu sebelum jawaban ini? stackoverflow.com/a/2667843 Apakah ini menambahkan informasi baru?
Ronak Shah