有没有办法从数据框的前n行删除某些特定条件下的某些行。 例如,我有一个数据框
Table_Number.130.ID_HOUR Date Time_.EST. 1 137 480 365 1600 2 340 0 4 1612 3 340 0 365 1619 4 340 0 87 1657 5 340 0 365 1700 6 129 60 365 1700 7 340 0 365 1703 8 340 0 96 1709 9 340 0 365 1740 10 340 0 365 1755 11 129 60 365 1800 12 340 0 365 1804 13 340 0 365 1811 14 340 0 365 1817 15 340 0 365 1825 16 340 0 365 1833 17 340 0 365 1839 18 340 0 365 1848 19 340 0 365 1857 20 129 60 365 1900
我想从Date> 350
的前10行中删除答案 0 :(得分:3)
我们可以使用rbind
dt <- read.table(text = " 'Table_Number.130.'' ID_HOUR' Date 'Time_.EST.'
1 137 480 365 1600
2 340 0 4 1612
3 340 0 365 1619
4 340 0 87 1657
5 340 0 365 1700
6 129 60 365 1700
7 340 0 365 1703
8 340 0 96 1709
9 340 0 365 1740
10 340 0 365 1755
11 129 60 365 1800
12 340 0 365 1804
13 340 0 365 1811
14 340 0 365 1817
15 340 0 365 1825
16 340 0 365 1833
17 340 0 365 1839
18 340 0 365 1848
19 340 0 365 1857
20 129 60 365 1900",
header = TRUE)
rbind(subset(dt[1:10,], subset = Date > 350), dt[11:nrow(dt),])
答案 1 :(得分:2)
我们可以使用dplyr
包。
library(dplyr)
dt2 <- dt %>% filter(!(Date > 350 & row_number() %in% 1:10))
dt2
Table_Number.130. X.ID_HOUR Date Time_.EST.
1 340 0 4 1612
2 340 0 87 1657
3 340 0 96 1709
4 129 60 365 1800
5 340 0 365 1804
6 340 0 365 1811
7 340 0 365 1817
8 340 0 365 1825
9 340 0 365 1833
10 340 0 365 1839
11 340 0 365 1848
12 340 0 365 1857
13 129 60 365 1900
数据强>
dt <- read.table(text = " 'Table_Number.130.'' ID_HOUR' Date 'Time_.EST.'
1 137 480 365 1600
2 340 0 4 1612
3 340 0 365 1619
4 340 0 87 1657
5 340 0 365 1700
6 129 60 365 1700
7 340 0 365 1703
8 340 0 96 1709
9 340 0 365 1740
10 340 0 365 1755
11 129 60 365 1800
12 340 0 365 1804
13 340 0 365 1811
14 340 0 365 1817
15 340 0 365 1825
16 340 0 365 1833
17 340 0 365 1839
18 340 0 365 1848
19 340 0 365 1857
20 129 60 365 1900",
header = TRUE)
答案 2 :(得分:2)
我的解决方案仅使用基础包。一点点的黑客,但它工作正常。
x[-x[x$Date>=350,]$Table_Number[1:10],]