วิธีใช้ฟังก์ชัน dcast ของ data.table ใน r


คุณสามารถใช้ฟังก์ชัน dcast ของแพ็คเกจ data.table ใน R เพื่อปรับรูปร่างเฟรมข้อมูลจาก รูปแบบยาว เป็นรูปแบบกว้างได้

ฟังก์ชันนี้มีประโยชน์อย่างยิ่งเมื่อคุณต้องการสรุปตัวแปรเฉพาะในกรอบข้อมูลซึ่งจัดกลุ่มตามตัวแปรอื่น

ตัวอย่างต่อไปนี้แสดงวิธีการใช้ฟังก์ชัน dcast ในทางปฏิบัติกับกรอบข้อมูลต่อไปนี้ใน R:

 library (data.table)

#create data frame
df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
                 position=c('G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'),
                 points=c(18, 13, 10, 12, 16, 25, 24, 31),
                 assists=c(9, 8, 8, 5, 12, 15, 10, 7))

#convert data frame to data table
dt <- setDT(df)

#view data table
dt

   team position points assists
1: AG 18 9
2: AG 13 8
3:AF 10 8
4:AF 12 5
5: BG 16 12
6: BG 25 15
7: BF 24 10
8: BF 31 7

ตัวอย่างที่ 1: คำนวณหน่วยเมตริกสำหรับตัวแปร โดยจัดกลุ่มตามตัวแปรอื่นๆ

รหัสต่อไปนี้แสดงวิธีใช้ฟังก์ชัน dcast เพื่อคำนวณค่า คะแนน เฉลี่ย โดยจัดกลุ่มตามตัวแปร ทีม และ ตำแหน่ง :

 library (data.table)

#calculate mean points value by team and position
dt_new <- dcast(dt,
                team + position ~.,
                fun. aggregate = mean, 
                value. var = ' points ')

#view results
dt_new

   team position.
1:AF 11.0
2: AG 15.5
3: BF 27.5
4: BG 20.5

ตัวอย่างที่ 2: คำนวณเมตริกหลายรายการสำหรับตัวแปรหนึ่งๆ โดยจัดกลุ่มตามตัวแปรอื่นๆ

รหัสต่อไปนี้แสดงวิธีการใช้ฟังก์ชัน dcast เพื่อคำนวณค่า คะแนน เฉลี่ยและค่า คะแนน สูงสุด โดยจัดกลุ่มตามตัวแปร ทีม และ ตำแหน่ง :

 library (data.table)

#calculate mean and max points values by team and position
dt_new <- dcast(dt,
                team + position ~.,
                fun. aggregate = list(mean, max), 
                value. var = ' points ')

#view results
dt_new

   team position points_mean points_max
1:AF 11.0 12
2: AG 15.5 18
3: BF 27.5 31
4: BG 20.5 25

ตัวอย่างที่ 3: คำนวณหน่วยเมตริกสำหรับตัวแปรหลายตัว โดยจัดกลุ่มตามตัวแปรอื่นๆ

รหัสต่อไปนี้แสดงวิธีการใช้ฟังก์ชัน dcast เพื่อคำนวณค่า คะแนน เฉลี่ยและค่า ช่วยเหลือ เฉลี่ย โดยจัดกลุ่มตามตัวแปร ทีม และ ตำแหน่ง :

 library (data.table)

#calculate mean and max points values by team and position
dt_new <- dcast(dt,
                team + position ~.,
                fun. aggregate = mean, 
                value. var = c(' points ', ' assists '))

#view results
dt_new

   team position points assists
1:AF 11.0 6.5
2: AG 15.5 8.5
3: BF 27.5 8.5
4: BG 20.5 13.5

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

บทช่วยสอนต่อไปนี้ให้ข้อมูลเพิ่มเติมเกี่ยวกับตารางข้อมูล:

data.table กับ data frame ใน R: ความแตกต่างที่สำคัญสามประการ
วิธีกรอง data.table ใน R
วิธีใช้ rbindlist ใน R เพื่อสร้างตารางข้อมูลจากหลายรายการ

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

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