AMcoder - javascript, python, java, html, php, sql

Զտել տվյալների շրջանակն ըստ ժամանակաշրջանի և ID-ի R-ով

Խնդիր.

Ես փորձում եմ զտել իմ տվյալների շրջանակը կոնկրետ ամսաթվերով, որոնք կախված են 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"), ]

Պատասխանները:


1
  • Շնորհակալություն Սա շատ մոտ է, բայց առաջին ժամադրությունը df$id == "B"-ի սահմաններում պետք է լինի 2017-08-05 00:30:00՝ 2017-08-04 17:20:00-ի փոխարեն: 11.10.2017
  • Այս լուծումը աշխատեց իմ օրինակի համար, բայց չի անում ճիշտ այն, ինչ ես կցանկանայի իմ իրական տվյալների համար: Ի՞նչ կանեիք, եթե ցանկանայիք կիրառել նույն ամսաթվերի զտիչները A-ի և B-ի համար, բայց ցանկանայիք պահել բոլոր տվյալները մեկ այլ ID-ի համար, ասենք df$id == "C": 11.10.2017
  • Նոր նյութեր

    Օգտագործելով Fetch Vs Axios.Js-ը՝ HTTP հարցումներ կատարելու համար
    JavaScript-ը կարող է ցանցային հարցումներ ուղարկել սերվեր և բեռնել նոր տեղեկատվություն, երբ դա անհրաժեշտ լինի: Օրինակ, մենք կարող ենք օգտագործել ցանցային հարցումը պատվեր ներկայացնելու,..

    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար
    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար Ինչպե՞ս հանգստացնել ձեր միտքը և աշխատեցնել ձեր պրոցեսորը: Ինչպես մնալ հանգիստ և զարգանալ ճնշման տակ...

    Մեքենայի ուսուցում բանկային և ֆինանսների ոլորտում
    Բարդ, խելացի անվտանգության համակարգերը և հաճախորդների սպասարկման պարզեցված ծառայությունները բիզնեսի հաջողության բանալին են: Ֆինանսական հաստատությունները, մասնավորապես, պետք է առաջ մնան կորի..

    Ես AI-ին հարցրի կյանքի իմաստը, այն ինչ ասում էր, ցնցող էր:
    Այն պահից ի վեր, երբ ես իմացա Արհեստական ​​ինտելեկտի մասին, ես հիացած էի այն բանով, թե ինչպես է այն կարողանում հասկանալ մարդկային նորմալ տեքստը, և այն կարող է առաջացնել իր սեփական արձագանքը դրա..

    Ինչպես սովորել կոդավորումը Python-ում վագրի պես:
    Սովորելու համար ծրագրավորման նոր լեզու ընտրելը բարդ է: Անկախ նրանից, թե դուք սկսնակ եք, թե առաջադեմ, դա օգնում է իմանալ, թե ինչ թեմաներ պետք է սովորել: Ծրագրավորման լեզվի հիմունքները, դրա..

    C++-ի օրական բիթ(ե) | Ամենաերկար պալինդրոմային ենթաշարը
    C++ #198-ի ամենօրյա բիթ(ե), Ընդհանուր հարցազրույցի խնդիր. Ամենաերկար պալինդրոմային ենթատող: Այսօր մենք կանդրադառնանք հարցազրույցի ընդհանուր խնդրին. Ամենաերկար palindromic substring...

    Kydavra ICAReducer՝ ձեր տվյալների ծավալայինությունը նվազեցնելու համար
    Ի՞նչ է ICAReducer-ը: ICAReducer-ն աշխատում է հետևյալ կերպ. այն նվազեցնում է նրանց միջև բարձր փոխկապակցված հատկանիշները մինչև մեկ սյունակ: Բավականին նման է PCAreducer-ին, չնայած այն..