ตอบ: วิธีผสานเฟรมข้อมูลตามชื่อคอลัมน์


คุณสามารถใช้วิธีการต่อไปนี้เพื่อผสานเฟรมข้อมูลตามชื่อคอลัมน์ใน R:

วิธีที่ 1: ผสานตามชื่อคอลัมน์ที่ตรงกัน

 merge(df1, df2, by=' var1 ')

วิธีที่ 2: ผสานตามชื่อคอลัมน์ที่ไม่ตรงกัน

 merge(df1, df2, by. x = ' var1 ', by. y = ' variable1 ')

วิธีที่ 3: ผสานตามชื่อคอลัมน์ที่ตรงกันหลายรายการ

 merge(df1, df2, by=c(' var1 ', ' var2 '))

วิธีที่ 4: ผสานตามชื่อคอลัมน์ที่ไม่ตรงกันหลายรายการ

 merge(df1, df2, by. x =c(' var1 ', ' var2 '), by. y =c(' variable1 ', ' variable2 '))

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

ตัวอย่างที่ 1: ผสานตามชื่อคอลัมน์ที่ตรงกัน

รหัสต่อไปนี้แสดงวิธีการผสานสองเฟรมข้อมูลใน R ตามชื่อคอลัมน์ที่ตรงกัน:

 #define data frames
df1 <- data. frame (team=c('A', 'B', 'C', 'D'),
                  dots=c(88, 98, 104, 100))

df2 <- data. frame (team=c('A', 'B', 'C', 'D'),
                  rebounds=c(22, 31, 29, 20))

#merge based on one column with matching name
merge(df1, df2, by=' team ')

  team points rebounds
1 A 88 22
2 B 98 31
3 C 104 29
4 D 100 20

ผลลัพธ์คือกรอบข้อมูลที่ตรงกับแถวในแต่ละกรอบข้อมูลโดยใช้คอลัมน์ ทีม

ตัวอย่างที่ 2: ผสานตามชื่อคอลัมน์ที่ไม่ตรงกัน

รหัสต่อไปนี้แสดงวิธีการผสานสองเฟรมข้อมูลใน R ตามชื่อคอลัมน์ที่ไม่ตรงกัน:

 #define data frames
df1 <- data. frame (team=c('A', 'B', 'C', 'D'),
                  dots=c(88, 98, 104, 100))

df2 <- data. frame (team_name=c('A', 'B', 'C', 'D'),
                  rebounds=c(22, 31, 29, 20))

#merge based on one column with unmatched name
merge(df1, df2, by. x = ' team ', by. y = ' team_name ')

  team points rebounds
1 A 88 22
2 B 98 31
3 C 104 29
4 D 100 20

ผลลัพธ์คือกรอบข้อมูลที่จับคู่แถวโดยใช้คอลัมน์ ทีม ในกรอบข้อมูลแรกและคอลัมน์ team_name ในกรอบข้อมูลที่สอง

ตัวอย่างที่ 3: ผสานตามชื่อคอลัมน์ที่ตรงกันหลายรายการ

รหัสต่อไปนี้แสดงวิธีการผสานสองเฟรมข้อมูลใน R ตามชื่อคอลัมน์ที่ตรงกันหลายรายการ:

 #define data frames
df1 <- data. frame (team=c('A', 'A', 'B', 'B'),
                  position=c('G', 'F', 'G', 'F'),
                  dots=c(88, 98, 104, 100))

df2 <- data. frame (team=c('A', 'A', 'B', 'B'),
                  position=c('G', 'F', 'G', 'F'),
                  rebounds=c(22, 31, 29, 20))

#merge based on multiple columns with matching names
merge(df1, df2, by=c(' team ', ' position '))

  team position points rebounds
1 AF 98 31
2 AG 88 22
3 BF 100 20
4 BG 104 29

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

ตัวอย่างที่ 4: ผสานตามชื่อคอลัมน์ที่ไม่ตรงกันหลายรายการ

รหัสต่อไปนี้แสดงวิธีการผสานสองเฟรมข้อมูลใน R ตามชื่อคอลัมน์ที่ไม่ตรงกันหลายรายการ:

 #define data frames
df1 <- data. frame (team=c('A', 'A', 'B', 'B'),
                  position=c('G', 'F', 'G', 'F'),
                  dots=c(88, 98, 104, 100))

df2 <- data. frame (team_name=c('A', 'A', 'B', 'B'),
                  position_name=c('G', 'F', 'G', 'F'),
                  rebounds=c(22, 31, 29, 20))

#merge based on multiple columns with matching names
merge(df1, df2, by. x =c(' team ', ' position '), by. y =c(' team_name ', ' position_name '))

  team position points rebounds
1 AF 98 31
2 AG 88 22
3 BF 100 20
4 BG 104 29

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

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

บทช่วยสอนต่อไปนี้จะอธิบายวิธีการใช้งานฟังก์ชันเฟรมข้อมูลทั่วไปอื่นๆ ใน R:

วิธีเข้าร่วมซ้ายใน R
วิธีการเข้าร่วมภายในใน R
วิธีทำ VLOOKUP ใน R
วิธีเพิ่มแถวใน data frame ใน R

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

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