Membandingkan interval dan datetime
Tugas umum dengan interval adalah menanyakan apakah suatu waktu berada di dalam interval atau apakah interval tersebut tumpang tindih dengan interval lain.
Operator %within% menguji apakah datetime (atau interval) di sisi kiri berada dalam interval di sisi kanan. Misalnya, jika y2001 adalah interval yang mencakup tahun 2001,
y2001 <- ymd("2001-01-01") %--% ymd("2001-12-31")
Maka ymd("2001-03-30") %within% y2001 akan mengembalikan TRUE dan ymd("2002-03-30") %within% y2001 akan mengembalikan FALSE.
int_overlaps() melakukan pengujian serupa, tetapi akan mengembalikan true jika dua interval saling tumpang tindih sama sekali.
Berlatihlah untuk mencari tahu raja mana yang melihat komet Halley sekitar tahun 1066.
Latihan ini adalah bagian dari kursus
Bekerja dengan Tanggal dan Waktu di R
Petunjuk latihan
Kami telah menempatkan halleys, sebuah himpunan data yang menggambarkan kemunculan komet Halley, di ruang kerja Anda.
- Cetak
halleysuntuk meninjau tanggal.perihelion_dateadalah tanggal ketika komet paling dekat dengan Matahari.start_datedanend_dateadalah rentang tanggal saat komet terlihat dari Bumi. - Buat kolom baru,
visible, yang merupakan interval daristart_datehinggaend_date. - Anda akan bekerja dengan satu kemunculan; ekstrak baris ke-14 dari
halleys. - Saring
monarchsuntuk yanghalleys_1066$perihelion_dateberada di dalamreign. - Saring
monarchsuntuk yanghalleys_1066$visiblebertumpang tindih denganreign.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# Print halleys
halleys
# New column for interval from start to end date
halleys <- halleys %>%
mutate(visible = ___)
# The visitation of 1066
halleys_1066 <- halleys[__, ]
# Monarchs in power on perihelion date
monarchs %>%
filter(___) %>%
select(name, from, to, dominion)
# Monarchs whose reign overlaps visible time
monarchs %>%
filter(___) %>%
select(name, from, to, dominion)