Խնդիր.
Ես փորձում եմ զտել իմ տվյալների շրջանակը կոնկրետ ամսաթվերով, որոնք կախված են ID վեկտորից:
Մասնավորապես, դիտումների համար, որտեղ df$id == "A"
, ես ուզում եմ հեռացնել տողերը 2017-08-05 00:20:00
-ի և 2017-08-10 13:55:00
-ի միջև: Այնուամենայնիվ, դիտումների համար, որտեղ df$id == "B"
, ես ուզում եմ հեռացնել տողերը տարբեր ժամանակային միջակայքի միջև՝ 2017-08-05 00:30:00
և 2017-08-10 13:55:00
:
Տվյալների շրջանակի օրինակ՝
date <- as.POSIXct(c("2017-08-04 16:40:00","2017-08-05 00:20:00","2017-08-10 13:55:00","2017-08-15 08:35:00", "2017-08-04 17:20:00","2017-08-05 00:30:00","2017-08-10 13:55:00","2017-08-15 09:30:00"), format = "%Y-%m-%d %H:%M:%S")
value <- as.numeric(c(1, 2, 3, 4, 1, 2, 3, 4))
id <- as.factor(c("A","A","A","A","B","B","B","B"))
df <- data.frame(date, value, id)
Ցանկալի արդյունք՝
date value id
2017-08-04 16:40:00 1 A
2017-08-15 08:35:00 4 A
2017-08-04 17:20:00 1 B
2017-08-15 09:30:00 4 B
Շնորհակալություն:
Խմբագրել. եթե ձեր տվյալների շրջանակն ունի երրորդ կատեգորիա (df$id == "C"
), որը ցանկանում եք ամբողջությամբ պահպանել.
df[which(
(df$id == "A" & (df$date < "2017-08-05 00:20:00" | df$date > "2017-08-10 13:55:00")) |
(df$id == "B" & (df$date < "2017-08-05 00:30:00" | df$date > "2017-08-10 13:55:00"))
| df$id == "C"), ]
df$id == "B"
-ի սահմաններում պետք է լինի2017-08-05 00:30:00
՝2017-08-04 17:20:00
-ի փոխարեն: 11.10.2017A
-ի ևB
-ի համար, բայց ցանկանայիք պահել բոլոր տվյալները մեկ այլ ID-ի համար, ասենքdf$id == "C"
: 11.10.2017