Kenapa saya mendapatkan nilai NA setelah melakukan subsetting di R?

Tahukah Anda mengapa saya mendapatkan nilai NA setelah mengelompokkan observasi ke dalam kerangka data baru dan bagaimana cara mengatasinya? Inilah cara saya melanjutkan - jangan ragu untuk memberi tahu saya tentang kesalahan apa pun yang mungkin saya buat.

Bingkai data saya adalah LE2010. Saya telah mengurutkan jumlah pemilih dalam urutan menaik dan ingin memilih 5 baris pertama dan 5 baris terakhir (yang memiliki jumlah pemilih tertinggi dan terendah)

 head(LE2010)
      ward.name ward.code electorate votescast  turnout
 111   Haverstock E05000136       8621      3123 36.22550
 361   Courtfield E05000386       6407      2400 37.45903
 358     Brompton E05000383       5918      2362 39.91213
 365    Hans Town E05000390       6787      2722 40.10609
 370 Queen's Gate E05000395       6258      2565 40.98754
 363 Earl's Court E05000388       6514      2723 41.80227
 tail(LE2010)
  ward.name ward.code electorate votescast  turnout
 534 South   E05000559       7356      5589 75.97879
 535 Cheam   E05000560       7765      5929 76.35544
 499 Kew     E05000524       8212      6320 76.96055
 166 Southf. E05000191       8803      6803 77.28047
 99  Petts   E05000124      11000      8594 78.12727
 492 East    E05000517       7460      5871 78.69973

Saya kemudian memilih 5 baris pertama dan 5 baris terakhir (saya tidak yakin bagaimana melakukan ini dengan benar sehingga kesalahan mungkin datang dari sini...

#Select the first 5 first and 5 last rows
LE2010.2 <- LE2010[1:5, ][620:624, ]
LE2010.2
 ward.name ward.code electorate votescast turnout
NA        <NA>      <NA>         NA        NA      NA
NA.1      <NA>      <NA>         NA        NA      NA
NA.2      <NA>      <NA>         NA        NA      NA
NA.3      <NA>      <NA>         NA        NA      NA
NA.4      <NA>      <NA>         NA        NA      NA

Saya sekarang nilai di subset saya adalah NA... Adakah yang tahu mengapa dan bagaimana menyelesaikannya? Mohon maaf sebelumnya, ini pertanyaan pemula :)

Terima kasih

Melodi


person Mélody Barreau    schedule 30.04.2015    source sumber


Jawaban (2)


Penjelasan mengapa kode Anda tidak berfungsi:

LE2010.2 <- LE2010[1:5, ][620:624, ]

LE2010[1:5, ] mengambil 5 baris pertama LE2010. Ini adalah hal pertama yang Anda ketik, jadi subset ini dijalankan terlebih dahulu. Saat Anda menempelkan lebih banyak tanda kurung di bagian akhir, Anda mencoba membuat subset lagi, tetapi titik awalnya adalah subset yang sudah Anda buat, jadi Anda mencoba baris ke 620 hingga 624 dari subset 5 baris. Karena hanya memiliki 5 baris, NA dikembalikan.

Seperti yang dikatakan @cory, LE2010[c(1:5, 620:624), ] akan berfungsi, karena Anda hanya mengambil satu subset. Cara lain untuk melakukannya adalah

rbind(head(LE2010, 5), tail(LE2010, 5))

Saya suka menggunakan tail karena Anda tidak perlu mengetahui berapa banyak baris yang ada, cukup ambil dari akhir. Di sini saya mengambil dua himpunan bagian dan mengikatnya bersama-sama, tetapi kedua himpunan bagian tersebut merujuk pada objek aslinya.

person Gregor Thomas    schedule 30.04.2015
comment
Hebat, itu berhasil DAN saya mengerti alasannya, terima kasih kepada Anda dan Cory. Terimakasih banyak! - person Mélody Barreau; 30.04.2015

Coba ini:

LE2010.2 <- LE2010[c(1:5, 620:624), ]
person cory    schedule 30.04.2015