2015-04-30 77 views
0

你知道爲什麼我在將觀測數據分組到新的數據框後獲得NA值以及如何解決這個問題?以下是我如何繼續 - 隨時讓我知道我可能犯的任何錯誤。如何在R中進行子集化後獲得NA值?

我的數據框是LE2010。我排在升序道岔和想選擇第5和最後5行(那些有最高和最低的投票率)

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 

我然後選擇第5個最後5行(我沒」牛逼某些如何做到這一點妥善所謂的錯誤可能來自這裏...

#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 

我現在在我的子集的值來港...任何想法,爲什麼,以及如何解決這個問題?道歉提前,這是一個新手問題:)

謝謝

旋律

回答

1

試試這個:

LE2010.2 <- LE2010[c(1:5, 620:624), ] 
+0

非常感謝您的幫助,它的工作原理! –

2

的解釋爲什麼您的代碼不起作用:

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

LE2010[1:5, ]抓住第5行的LE2010。這是您輸入的第一個內容,因此首先執行該子集。當你在最後加上更多的括號時,你想再次嘗試子集,但是起點是你已經創建的子集,所以你嘗試了5行子集的620到624行。由於它只有5行,因此返回NAs。

正如@cory所說,LE2010[c(1:5, 620:624), ]可以工作,因爲您只需要一個子集。另一種方式做

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

我喜歡用tail這將是因爲你並不需要知道多少行有,它只是從最終挑選。在這裏,我將兩個子集合並在一起,但子集都引用原始對象。

+0

偉大的,這工作,我明白爲什麼感謝你和科裏。非常感謝! –