วิธีทำ cross join ใน r (พร้อมตัวอย่าง)
วิธีที่ง่ายที่สุดในการดำเนินการ cross join ใน R คือการใช้ฟังก์ชัน cross() จากแพ็คเกจ Tidyr :
library (tidyr) #perform cross join on df1 and df2 crossing(df1, df2)
ตัวอย่างต่อไปนี้แสดงวิธีใช้ฟังก์ชันนี้ในทางปฏิบัติ
ตัวอย่าง: การดำเนินการ Cross Join ใน R
สมมติว่าเรามีเฟรมข้อมูลสองเฟรมต่อไปนี้ใน R:
#define first data frame df1 = data. frame (team1=c('A', 'B', 'C', 'D'), dots=c(18, 22, 19, 14)) df1 team1 points 1 to 18 2 B 22 3 C 19 4 D 14 #define second data frame df2 = data. frame (team2=c('A', 'B', 'F'), assists=c(4, 9, 8)) df2 team2 assists 1 to 4 2 B 9 3 F 8
เราสามารถใช้ฟังก์ชัน crossing() จากแพ็คเกจ Tidyr เพื่อดำเนินการรวมข้ามบนเฟรมข้อมูลทั้งสองนี้:
library (tidyr) #perform cross join cross <- crossing(df1, df2) #view result cross # A tibble: 12 x 4 team1 points team2 assists 1 A 18 A 4 2 A 18 B 9 3 A 18 F 8 4 B 22 A 4 5 B 22 B 9 6 B 22 F 8 7 C 19 A 4 8 C 19 B 9 9 C 19 F 8 10 D 14 A 4 11 D 14 B 9 12 D 14 F 8
ผลลัพธ์ที่ได้คือเฟรมข้อมูลที่ประกอบด้วยแถวที่เป็นไปได้ทั้งหมดจากแต่ละเฟรมข้อมูล
ตัวอย่างเช่น แถวแรกของ data frame แรกประกอบด้วยทีม A และ 18 คะแนน บรรทัดนี้สอดคล้องกับแต่ละบรรทัดของกรอบข้อมูลที่สอง
จากนั้นแถวที่สองของกรอบข้อมูลแรกจะมีทีม B และ 22 คะแนน บรรทัดนี้ยังสอดคล้องกับแต่ละบรรทัดของกรอบข้อมูลที่สองด้วย
ผลลัพธ์ที่ได้คือกรอบข้อมูล 12 บรรทัด
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการทั่วไปอื่นๆ ใน R:
วิธีเข้าร่วมซ้ายใน R
วิธีการเข้าร่วมที่ถูกต้องใน R
วิธีการเข้าร่วมภายในใน R