R'deki bir data.frame'in ilk 4 satırını seçin


109

A'nın ilk 4 satırını nasıl seçebilirim 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

Yanıtlar:


154

Kullanım head:

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

1
Merhaba, ya 5 ile 7 arasındaki satırları almak istersen?
Bustergun

Başka bir yerde belirtilen "indeks" cevabını kullanabilirsiniz. Bu durumda normalde dplyr'de dilim işlevini kullanırım. (Davranış gruplandırmaya bağlıdır.)
Eduardo Leoni

130

Dizini kullanma:

df[1:4,]

Parantez içindeki değerler mantıksal, sayısal veya karakter olarak yorumlanabilir (ilgili adlarla eşleşen):

df[row.index, column.index]

Bu konu hakkında daha fazla ayrıntı için yardımı (`[`) okuyun ve ayrıca R'ye Giriş'teki indeks matrisleri hakkında bilgi edinin .


4
Bu, ilk dört satırı yalnızca bir sütundan istiyorsanız da işe yarar. İlk dört tepki değerlerini elde etmek için: df[1:4, "Response"].
Iain Samuel McLean Elder

19

Birisinin dplyrçözüme ilgi duyması durumunda , çok sezgiseldir:

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

12

4'ten az satırınız varsa, head( head(data, 4)veya head(data, n=4)) işlevini kullanabilirsiniz ve bu bir cazibe gibi çalışır. Ancak, 15 satırlık aşağıdaki veri kümesine sahip olduğumuzu varsayalım

>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

Diyelim ki ilk 10 satırı seçmek istiyorsunuz. Bunu yapmanın en kolay yolu olurdu 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

Ancak, diyelim ki ilk 19 satırı almaya çalışıyorsunuz ve ne olduğunu görüyorsunuz - eksik değerleriniz olacak

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

ve head () işlevi ile,

> 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

Umarım bu yardımcı olur!


10

DataFrame için basitçe yazılabilir

head(data, num=10L)

Örneğin ilk 10'u almak için.

Bir data.frame için basitçe yazılabilir

head(data, 10)

ilk 10'u almak için.


Bu yanıt, 5 yıl önce bu yanıttan önce yayınlanan kabul edilmiş yanıttan ne açıdan farklıdır? stackoverflow.com/a/2667843 Herhangi bir yeni bilgi ekler mi?
Ronak Şah
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.