我正在尝试从数据框中删除一行,并且我希望在删除行后按顺序保留行编号。例如,如果我删除#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.701231 0.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
有什么建议吗?
答案 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