[英]How to delete rows under a condition from first n rows of a data frame in R
有沒有辦法從數據幀的前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行中刪除
我們可以使用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),])
我們可以使用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)
我的解決方案只使用基礎包。 一點點的黑客,但它工作正常。
x[-x[x$Date>=350,]$Table_Number[1:10],]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.