2014-11-03 2 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

+0

Спасибо, это то, что мне нужно! –

ответ

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 
Смежные вопросы