Bắt đầu ngayBắt đầu miễn phí

So sánh intervals và datetimes

Một tác vụ thường gặp với interval là kiểm tra xem một thời điểm có nằm trong interval hay không, hoặc hai interval có chồng lấn nhau không.

Toán tử %within% kiểm tra xem datetime (hoặc interval) ở phía bên trái có nằm trong interval ở phía bên phải hay không. Ví dụ, nếu y2001 là interval bao trùm năm 2001,

y2001 <- ymd("2001-01-01") %--% ymd("2001-12-31")

Thì ymd("2001-03-30") %within% y2001 sẽ trả về TRUEymd("2002-03-30") %within% y2001 sẽ trả về FALSE.

int_overlaps() thực hiện kiểm tra tương tự, nhưng sẽ trả về true nếu hai interval có bất kỳ phần chồng lấn nào.

Luyện tập để tìm xem những vị vua nào đã nhìn thấy sao chổi Halley vào khoảng năm 1066.

Bài tập này là một phần của khóa học

Làm việc với Ngày và Giờ trong R

Xem khóa học

Hướng dẫn bài tập

Chúng tôi đã đặt halleys, một tập dữ liệu mô tả các lần xuất hiện của sao chổi Halley, vào workspace của bạn.

  • In halleys để xem dữ liệu. perihelion_date là ngày sao chổi ở gần Mặt Trời nhất. start_dateend_date là khoảng thời gian sao chổi có thể nhìn thấy từ Trái Đất.
  • Tạo cột mới visible, là một interval từ start_date đến end_date.
  • Bạn sẽ làm việc với một lần xuất hiện, trích xuất hàng thứ 14 của halleys.
  • Lọc monarchs để giữ những dòng mà halleys_1066$perihelion_date nằm trong reign.
  • Lọc monarchs để giữ những dòng mà halleys_1066$visible chồng lấn với reign.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

# 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)
Chỉnh sửa và Chạy Mã