2014-11-03 83 views
1

我想從數據框中刪除一行,並且我想要在刪除該行後按順序保留行編號。例如,如果刪除行#208的編號是這樣207,209,210,而不是所希望的207,208,209從數據框中刪除行並保持行編號排序

下面是代碼的示例:

for(i in 1:210) { 
DataFrame_remove<-DataFrame[-c(i),] 
} 

這裏是刪除行#210後的數據幀

   Date   Q  LogQ ConcLow ConcHigh Uncen ConcAve Julian Month Day DecYear MonthSeq  SinDY   CosDY 
    207 2008-03-01 236.34381 5.465288 6.81600 6.81600  1 6.81600 57768  3 61 2008.165  1899 0.861701760 5.074151e-01 
    208 2008-04-01 195.61188 5.276132 5.33200 5.33200  1 5.33200 57799  4 92 2008.250  1900 1.000000000 3.835054e-13 
    209 2008-05-01 48.07530 3.872769 2.32000 2.32000  1 2.32000 57829  5 122 2008.332  1901 0.870285241 -4.925481e-01 
    211 2008-07-01 14.15844 2.650311 0.02600 0.02600  1 0.02600 57890  7 183 2008.499  1903 0.008583481 -9.999632e-01 
    212 2008-08-01 14.89806 2.7.17600 0.17600  1 0.17600 57921  8 214 2008.583  1904 -0.500000000 -8.660254e-01 
    213 2008-09-01 16.97604 2.831803 0.34700 0.34700  1 0.34700 57952  9 245 2008.668  1905 -0.870285241 -4.925481e-01 

有什麼建議嗎?

+2

嘗試'row.names(DataFrame_remove)< - NULL'。你不需要一個循環來刪除一些行。 'DateFrame [ - (208:212),]' – akrun 2014-11-03 15:03:52

+0

謝謝,這就是我需要的! – 2014-11-03 15:16:20

回答

0

正如意見中提到的@akrun,你可以簡單地用rownames(your_data_frame) <- NULL你可以更直接拖放行:

下面是一個例子:

首先,一些示例數據:

x <- data.frame(matrix(1:14, ncol = 2)) 
toRemove <- 3:5 

其次,丟棄行 - 的差距仍然存在:

out <- x[-toRemove, ] 
out 
# X1 X2 
# 1 1 8 
# 2 2 9 
# 6 6 13 
# 7 7 14 

第三,復位行號的順序:

rownames(out) <- NULL 
out 
# X1 X2 
# 1 1 8 
# 2 2 9 
# 3 6 13 
# 4 7 14 

但是,還有一個更直接的辦法:使用"rownames<-"(帶引號,或反引號),這樣的...

`rownames<-`(x[-toRemove, ], NULL) 
# X1 X2 
# 1 1 8 
# 2 2 9 
# 3 6 13 
# 4 7 14