วิธีทำ 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

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

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