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

การ mutate แบบรายกลุ่ม

นอกจากการคำนวณสถิติสรุปแบบรายกลุ่มแล้ว ยังสามารถใช้ mutate() เพื่อเพิ่มคอลัมน์ที่มีค่าเฉพาะของแต่ละกลุ่มได้ด้วย ตัวอย่างเช่น เทคนิคหนึ่งในการ normalize ค่าคือการลบค่าเฉลี่ยแล้วหารด้วยค่าเบี่ยงเบนมาตรฐาน ซึ่งสามารถทำ normalization แบบรายกลุ่มได้ด้วยโค้ดต่อไปนี้

a_tibble %>%
  group_by(grp1, grp2) %>%
  mutate(normalized_x = (x - mean(x)) / sd(x))

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

แนะนำ Spark ด้วย sparklyr ใน R

ดูคอร์ส

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

Spark connection ถูกสร้างไว้ให้แล้วในชื่อ spark_conn และ tibble ที่เชื่อมต่อกับ track metadata ที่เก็บอยู่ใน Spark ถูกกำหนดไว้ล่วงหน้าเป็น track_metadata_tbl

  • จัดกลุ่มข้อมูลใน track_metadata ตาม artist_name
  • เพิ่มคอลัมน์ใหม่ชื่อ time_since_first_release
    • กำหนดให้เท่ากับ year ของกลุ่มนั้น ลบด้วย year แรกสุด (นั่นคือ min() ของ year) ที่ศิลปินเคยปล่อยเพลง
  • เรียงลำดับแถวตาม time_since_first_release จากมากไปน้อย

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

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

# track_metadata_tbl has been pre-defined
track_metadata_tbl

track_metadata_tbl %>%
  # Group by artist
  ___ %>%
  # Calc time since first release
  ___ %>%
  # Arrange by descending time since first release
  ___
แก้ไขและรันโค้ด