วิธีทำ vlookup (คล้ายกับ excel) ใน r


ฟังก์ชัน VLOOKUP ใน Excel ช่วยให้คุณค้นหาค่าในตารางโดยการจับคู่ค่าในคอลัมน์

ตัวอย่างเช่น ในสเปรดชีต Excel ต่อไปนี้ เราสามารถค้นหาชื่อทีมของผู้เล่นได้โดยใช้ VLOOKUP เพื่อจับคู่ชื่อผู้เล่นและส่งคืนทีมของผู้เล่น:

เราสามารถจำลองฟังก์ชันนี้โดยใช้ฐาน R หรือแพ็คเกจ dplyr:

ใช้ฐาน R:

 merge(df1, df2, by=" merge_column ")

การใช้ dplyr:

 inner_join(df1, df2, by=" merge_column ")

ตัวอย่างต่อไปนี้แสดงวิธีใช้แต่ละฟังก์ชันเหล่านี้ใน R เพื่อจำลองฟังก์ชัน VLOOKUP จาก Excel

VLOOKUP โดยใช้ Base R

รหัสต่อไปนี้แสดงวิธีการดำเนินการฟังก์ชันคล้าย VLOOKUP ในฐาน R โดยใช้ฟังก์ชัน ผสาน () :

 #create first data frame
df1 <- data.frame(player= LETTERS [1:15],
                  team= rep (c(' Mavs ', ' Lakers ', ' Rockets '), each =5))

#create second data frame 
df2 <- data.frame(player= LETTERS [1:15],
                  points=c(14, 15, 15, 16, 8, 9, 16, 27, 30, 24, 14, 19, 8, 6, 5))

#merge the two data frames
merge(df1, df2, by=" player ")

   player team points
1 A Mavs 14
2 B Mavs 15
3C Mavs 15
4D Mavs 16
5 E Mavs 8
6 F Lakers 9
7G Lakers 16
8 a.m. Lakers 27
9 I Lakers 30
10 J Lakers 24
11K Rockets 14
12L Rockets 19
13 M Rockets 8
14 N Rockets 6
15 O Rockets 5

โปรดทราบว่าสิ่งนี้จะส่งกลับผลลัพธ์เดียวกันกับฟังก์ชัน VLOOKUP ในตัวอย่างเบื้องต้น โปรดทราบว่าคุณสามารถระบุหลายคอลัมน์เพื่อผสานโดยใช้อาร์กิวเมนต์ by ได้

VLOOKUP โดยใช้ dplyr

 library (dplyr)

#create first data frame
df1 <- data.frame(player= LETTERS [1:15],
                  team= rep (c(' Mavs ', ' Lakers ', ' Rockets '), each =5))

#create second data frame 
df2 <- data.frame(player= LETTERS [1:15],
                  points=c(14, 15, 15, 16, 8, 9, 16, 27, 30, 24, 14, 19, 8, 6, 5))

#merge the two data frames using inner_join
inner_join(df1, df2, by=" player ")

   player team points
1 A Mavs 14
2 B Mavs 15
3C Mavs 15
4D Mavs 16
5 E Mavs 8
6 F Lakers 9
7G Lakers 16
8 a.m. Lakers 27
9 I Lakers 30
10 J Lakers 24
11K Rockets 14
12L Rockets 19
13 M Rockets 8
14 N Rockets 6
15 O Rockets 5

โปรดทราบว่าสิ่งนี้จะส่งกลับผลลัพธ์เดียวกันกับฟังก์ชัน VLOOKUP ใน Excel โปรดทราบว่าคุณสามารถระบุหลายคอลัมน์เพื่อผสานโดยใช้อาร์กิวเมนต์ by ได้

นอกจากนี้ หากคุณต้องการให้แสดงรายการที่ไม่ตรงกัน คุณสามารถใช้ฟังก์ชัน left_join ได้

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

วิธีการคำนวณผลรวมสะสมใน R
วิธีสร้างมาตรฐานข้อมูลใน R
วิธีเพิ่มแถวใน data frame ใน R

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

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