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

Jawaban:


154

Penggunaan head:

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

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.


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)

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!


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.


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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.