Виберіть перші 4 рядки фрейму data.R


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?
Бустергун

Ви можете використовувати відповідь "індекс", вказану в іншому місці. У цій ситуації я зазвичай використовую функцію зрізу в dplyr. (Поведінка залежить від угруповання.)
Едуардо Леоні

129

Використання індексу:

df[1:4,]

Якщо значення в дужках можна інтерпретувати як логічні, чисельні або символьні (відповідні відповідним іменам):

df[row.index, column.index]

Прочитайте довідку (`[`) для більш детальної інформації з цього питання, а також прочитайте про матриці індексу у Вступі до Р.


4
Це також працює, якщо ви хочете перші чотири рядки лише з одного стовпця. Для того, щоб отримати перші чотири значення відгуку: df[1:4, "Response"].
Ієн Самуель Маклін Старший

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 Додає чи нова інформація?
Ронак Шах
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.