ตอบ: วิธีใช้ pivot_wider() กับหลายคอลัมน์


ฟังก์ชัน pivot_wider() ของแพ็คเกจ Tidyr ใน R สามารถใช้เพื่อหมุนบล็อกข้อมูลจากรูปแบบยาวไปเป็นรูปแบบกว้าง

หากคุณต้องการใช้ฟังก์ชันนี้เพื่อหมุนหลายคอลัมน์ คุณสามารถใช้ไวยากรณ์ต่อไปนี้:

 library (tidyr)

df_wide <- pivot_wider(df, names_from=group, values_from=c(values1, values2))

ด้วยการระบุชื่อคอลัมน์หลายคอลัมน์ให้กับอาร์กิวเมนต์ Values_from คุณสามารถหมุนหลายคอลัมน์พร้อมกันได้

ตัวอย่างต่อไปนี้แสดงวิธีใช้ฟังก์ชันนี้ในทางปฏิบัติ

ที่เกี่ยวข้อง: ข้อมูลแบบยาวหรือแบบกว้าง: อะไรคือความแตกต่าง?

ตัวอย่าง: ใช้ pivot_wider() กับหลายคอลัมน์ใน R

สมมติว่าเรามีกรอบข้อมูลต่อไปนี้ใน R ซึ่งมีข้อมูลเกี่ยวกับผู้เล่นบาสเกตบอลต่างๆ:

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'B'),
                 player=c('G', 'F', 'C', 'G', 'F', 'C'),
                 points=c(22, 34, 20, 15, 14, 19),
                 assists=c(4, 10, 12, 9, 8, 5))

#view data frame
df

  team player points assists
1 AG 22 4
2 AF 34 10
3 AC 20 12
4 BG 15 9
5 BF 14 8
6 BC 19 5

ตอนนี้สมมติว่าเราต้องการหมุนค่าใน จุด และคอลัมน์ สนับสนุน พร้อมกัน

เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อทำสิ่งนี้:

 library (tidyr)

#pivot values in points and assists columns
df_wide <- pivot_wider(df, names_from=player, values_from=c(points, assists))

#view wide data frame
df_wide

# A tibble: 2 x 7
  team points_G points_F points_C assists_G assists_F assists_C
                             
1 A 22 34 20 4 10 12
2 B 15 14 19 9 8 5

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

ผลลัพธ์ที่ได้คือกรอบข้อมูลขนาดใหญ่ที่มีทั้งหมดเจ็ดคอลัมน์

หมายเหตุ : คุณสามารถดูเอกสารฉบับเต็มสำหรับฟังก์ชัน pivot_wider() ได้ที่นี่

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีใช้ฟังก์ชันทั่วไปอื่นๆ จากแพ็คเกจ Tidyr ใน R:

วิธีใช้ pivot_longer() ใน R
วิธีใช้ฟังก์ชัน Spread ใน R
วิธีใช้ฟังก์ชัน collect ใน R
วิธีใช้ฟังก์ชันแยกใน R
วิธีใช้ฟังก์ชัน Unite ใน R

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *