ลองแยกข้อมูลด้วย Split
บ่อยครั้งที่ข้อมูลของหลายกลุ่มจะอยู่รวมกันใน data frame เดียว อย่างเช่น data frame cash ที่เคยเห็นในบทที่ 3 ซึ่งมีคอลัมน์ cash_flow และ year ของสองกลุ่ม (บริษัท A และ B) แล้วถ้าต้องการแยก data frame นี้ออกเป็นสอง data frame แยกกันตาม company จะทำได้อย่างไร? ในแบบฝึกหัดถัดไปจะได้สำรวจว่า ทำไม ถึงควรทำแบบนั้น แต่ก่อนอื่น มาดูกันว่า จะทำได้อย่างไร โดยใช้ฟังก์ชัน split()
สร้าง grouping สำหรับการแยกข้อมูล แล้วใช้ split() เพื่อสร้าง list ของ data frame สองชุด
grouping <- cash$company
split_cash <- split(cash, grouping)
split_cash
$A
company cash_flow year
1 A 1000 1
2 A 4000 3
3 A 550 4
$B
company cash_flow year
4 B 1500 1
5 B 1100 2
6 B 750 4
7 B 6000 5
หากต้องการรวม data frame กลับคืนเป็นชุดเดิม ให้ใช้ unsplit(split_cash, grouping)
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
R เบื้องต้นสำหรับการเงิน
คำแนะนำการฝึกหัด
- data frame
cashพร้อมใช้งานใน workspace แล้ว - สร้าง
groupingใหม่จากคอลัมน์year - ใช้
split()เพื่อแยกcashออกเป็น list ของ data frame จำนวน 5 ชุดโดยแบ่งตามyearแล้วกำหนดให้กับsplit_cash - พิมพ์
split_cashเพื่อแสดงผล - ใช้
unsplit()เพื่อรวม data frame ทั้งหมดกลับเข้าด้วยกัน แล้วกำหนดให้กับoriginal_cash - พิมพ์
original_cashเพื่อเปรียบเทียบกับ data framecashชุดแรก
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Define grouping from year
grouping <-
# Split cash on your new grouping
split_cash <-
# Look at your split_cash list
# Unsplit split_cash to get the original data back.
original_cash <-
# Print original_cash