ฉันมีกรอบข้อมูลที่มีลักษณะดังต่อไปนี้ พร้อมด้วยปีและตัวระบุ ID รวมถึงตัวแปรหมวดหมู่จำนวนมาก (ค่าที่แสดงด้วยตัวพิมพ์ใหญ่ด้านล่าง):
Year ID Var1 Var2 Var3 ...
1996 1 A A B
1996 1 A A C
1996 2 B A D
1998 2 C C A
2000 3 D D D
เป้าหมายของฉันคือปรับเปลี่ยนรูปแบบนี้ให้เป็นรูปแบบกว้างตาม ID แต่ยังให้จำนวน ID ปี และมูลค่าด้วย ตัวอย่างเช่น:
ID Var1_1996_A Var1_1996_B Var1_1996_C Var1_1996_D ...
1 2 0 0 0
2 0 1 0 0
3 0 0 0 0
เป็นต้น สำหรับแต่ละตัวแปร ฉันค่อนข้างใหม่กับ R และไม่พบการดำเนินการที่คล้ายกันจากโพสต์ที่มีอยู่ (ขออภัยหากซ้ำกัน) มีใครรู้บ้างว่าวิธีที่ดีที่สุดในการบรรลุเป้าหมายนี้จะเป็นอย่างไร ฉันได้ลองใช้ tidyr::pivot_wider
แล้ว แต่สามารถทราบวิธีต่อท้ายปีเท่านั้น แต่ไม่สามารถสร้างหมวดหมู่แยกกันสำหรับการตอบสนองของตัวแปรแต่ละตัว
df <- df %>%
pivot_wider(names_from = year,
values_from (Var1, Var2, Var3, Var4, Var5)
หากใครสามารถนำเสนอข้อมูลเชิงลึกที่จะได้รับการชื่นชมอย่างมาก