Rのdata.frameの最初の4行を選択します


109

の最初の4行を選択するにはどうすればよいですか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

回答:


154

使用head

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

1
こんにちは、行5から7を取得したい場合はどうしますか?
Bustergun、

他の場所で指摘されている「インデックス」の回答を使用できます。この状況では、通常dplyrでスライス機能を使用します。(行動はグループに依存します。)
エドゥアルドレオニ

129

インデックスを使用する:

df[1:4,]

括弧内の値は、論理値、数値、または文字(それぞれの名前に一致)として解釈できます。

df[row.index, column.index]

この問題の詳細については、help( `[`)をお読みください。また、Rの概要のインデックスマトリックスについてもお読みください。


4
これは、1つの列からの最初の4行が必要な場合にも機能します。最初の4つの応答値を取得するにはdf[1:4, "Response"]
Iain Samuel McLean Elder

19

誰かがdplyr解決策に興味がある場合、それは非常に直感的です:

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

12

行数が4未満の場合は、head関数(head(data, 4)またはhead(data, n=4))を使用でき、これはチャームのように機能します。ただし、次の15行のデータセットがあるとします。

>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

たとえば、最初の10行を選択するとします。それを行う最も簡単な方法は、でしょう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

ただし、最初の19行を取得して何が起こるかを確認するとします-欠損値があります

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

そして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

この助けを願っています!


10

DataFrameの場合、単純に次のように入力できます。

head(data, num=10L)

たとえば、最初の10を取得します。

data.frameの場合、単純に次のように入力できます。

head(data, 10)

最初の10を取得します。


この回答は、この回答の5年前に投稿された承認済みの回答とどう違うのですか?stackoverflow.com/a/2667843新しい情報が追加されますか?
ロナックシャー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.