เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การดึงค่าเพื่อกรองและสรุปข้อมูล

อีกเหตุผลหนึ่งในการดึงองค์ประกอบของ datetime คือเพื่อช่วยกรองข้อมูลหรือสร้างสรุปผล ตัวอย่างเช่น หากสนใจเฉพาะข้อมูลที่บันทึกในวันธรรมดา (ไม่รวมวันหยุดสุดสัปดาห์) ก็สามารถดึงวันในสัปดาห์แล้วกรองออกได้ เช่น wday(date) %in% 2:6

จากแบบฝึกหัดที่แล้ว พบว่าเดือนมกราคม กุมภาพันธ์ และมีนาคม เป็นช่วงที่อากาศอบอุ่นและเหมาะแก่การไปเยือนเมืองโอ๊คแลนด์ แต่จะต้องพกเสื้อกันฝนไปด้วยไหม?

ในแบบฝึกหัดนี้จะหาคำตอบกัน โดยใช้ข้อมูลรายชั่วโมงเพื่อคำนวณว่าในแต่ละเดือนมีกี่วันที่มีฝนตกในช่วงกลางวัน

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การทำงานกับวันที่และเวลาใน R

ดูคอร์ส

คำแนะนำการฝึกหัด

  • สร้างคอลัมน์ใหม่สำหรับชั่วโมงและเดือนของข้อมูลจาก datetime โดยตั้งค่าให้แสดงชื่อเดือน
  • กรองเฉพาะข้อมูลในช่วงกลางวัน โดยให้ชั่วโมงมีค่ามากกว่าหรือเท่ากับ 8 และน้อยกว่าหรือเท่ากับ 22
  • จัดกลุ่มข้อมูลโดยเรียงตาม month ก่อน แล้วตาม date จากนั้นสรุปผลโดยใช้ any() กับคอลัมน์ rainy ผลลัพธ์ที่ได้จะเป็นค่าหนึ่งค่าต่อวัน
  • สรุปผลอีกครั้งโดยหาผลรวมของ any_rain ผลลัพธ์ที่ได้จะเป็นค่าหนึ่งค่าต่อเดือน

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# Create new columns hour, month and rainy
akl_hourly <- akl_hourly %>%
  mutate(
    ___ = ___(datetime),
    ___ = ___(datetime, ___),
    rainy = weather == "Precipitation"
  )

# Filter for hours between 8am and 10pm (inclusive)
akl_day <- akl_hourly %>% 
  filter(___, ___)

# Summarise for each date if there is any rain
rainy_days <- akl_day %>% 
  group_by(___, ___) %>%
  summarise(
    any_rain = ___(rainy)
  )

# Summarise for each month, the number of days with rain
rainy_days %>% 
  summarise(
    days_rainy = ___(any_rain)
  )
แก้ไขและรันโค้ด