MulaiMulai sekarang secara gratis

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

Lihat Kursus

Petunjuk latihan

Kami telah menempatkan halleys, sebuah himpunan data yang menggambarkan kemunculan komet Halley, di ruang kerja Anda.

  • Cetak halleys untuk meninjau tanggal. perihelion_date adalah tanggal ketika komet paling dekat dengan Matahari. start_date dan end_date adalah rentang tanggal saat komet terlihat dari Bumi.
  • Buat kolom baru, visible, yang merupakan interval dari start_date hingga end_date.
  • Anda akan bekerja dengan satu kemunculan; ekstrak baris ke-14 dari halleys.
  • Saring monarchs untuk yang halleys_1066$perihelion_date berada di dalam reign.
  • Saring monarchs untuk yang halleys_1066$visible bertumpang tindih dengan reign.

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)
Edit dan Jalankan Kode