ตอบ: วิธีผสานเฟรมข้อมูลตามชื่อคอลัมน์
คุณสามารถใช้วิธีการต่อไปนี้เพื่อผสานเฟรมข้อมูลตามชื่อคอลัมน์ใน 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