Câu hỏi Chọn 4 hàng đầu tiên của một data.frame trong R


Làm cách nào tôi có thể chọn 4 hàng đầu tiên củ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

76
2018-04-19 13:21


gốc




Các câu trả lời:


Sử dụng head:

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

109
2018-04-19 13:45



Xin chào, nếu bạn muốn nhận các hàng từ 5 đến 7 thì sao? - Bustergun
Bạn có thể sử dụng câu trả lời "chỉ mục" được chỉ ra ở nơi khác. Trong tình huống này, tôi thường sử dụng hàm slice trong dplyr. (Hành vi phụ thuộc vào nhóm.) - Eduardo Leoni


Sử dụng chỉ mục:

df[1:4,]

Trong trường hợp các giá trị trong ngoặc đơn có thể được hiểu là logic, số hoặc ký tự (khớp với tên tương ứng):

df[row.index, column.index]

Đọc trợ giúp (`[`) để biết thêm chi tiết về chủ đề này, và cũng đọc về chỉ số ma trận trong phần Giới thiệu về R.


90
2018-04-19 13:24



Điều này cũng hoạt động nếu bạn muốn bốn hàng đầu tiên chỉ từ một cột. Để nhận được bốn giá trị trả lời đầu tiên: df[1:4, "Response"]. - Iain Samuel McLean Elder


Nếu bạn có ít hơn 4 hàng, bạn có thể sử dụng head chức năng ( head(data, 4) hoặc là head(data, n=4)) và nó hoạt động như một sự quyến rũ. Tuy nhiên, giả sử chúng tôi có tập dữ liệu sau với 15 hàng

>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

Giả sử bạn muốn chọn 10 hàng đầu tiên. Cách dễ nhất để làm điều đó sẽ là 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

Tuy nhiên, giả sử bạn cố gắng truy xuất 19 hàng đầu tiên và xem điều gì xảy ra - bạn sẽ có giá trị bị thiếu

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

và với hàm 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

Hy vọng điều này giúp đỡ!


7
2018-01-22 14:50





Tại DataFrame, bạn có thể chỉ cần nhập

head(data, num=10L)

để có được 10 ví dụ đầu tiên.

Đối với một data.frame người ta có thể chỉ cần gõ

head(data, 10)

để có được 10 người đầu tiên.


6
2017-09-24 08:16





Trong trường hợp ai đó quan tâm đến dplyr giải pháp, nó rất trực quan:

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

4
2017-11-20 20:16