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에서 slice 함수를 사용합니다. (행동 그룹화에 따라 달라집니다.)
에두아르도 레오니

129

색인 사용 :

df[1:4,]

괄호 안의 값은 논리, 숫자 또는 문자 (각 이름과 일치)로 해석 될 수 있습니다.

df[row.index, column.index]

이 주제에 대한 자세한 내용은 help (`[`)를 읽고 Introduction to R에서 인덱스 행렬 에 대해서도 읽어보십시오 .


4
이것은 단 하나의 열에서 처음 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 새로운 정보를 추가합니까?
Ronak Shah
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.