วิธีแทนที่ค่าหลายค่าใน data frame โดยใช้ dplyr


คุณสามารถใช้ไวยากรณ์พื้นฐานต่อไปนี้เพื่อแทนที่ค่าหลายค่าใน data frame ใน R โดยใช้ฟังก์ชันในแพ็คเกจ dplyr :

 library (dplyr)

df %>%
  mutate(var1 = recode(var1, ' oldvalue1 ' = ' newvalue1 ', ' oldvalue2 ' = ' newvalue2 '), 
         var2 = recode(var2, ' oldvalue1 ' = ' newvalue1 ', ' oldvalue2 ' = ' newvalue2 '))

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

ตัวอย่าง: แทนที่ค่าหลายค่าโดยใช้ dplyr

สมมติว่าเรามีกรอบข้อมูลต่อไปนี้ใน R ซึ่งมีข้อมูลเกี่ยวกับผู้เล่นบาสเกตบอลต่างๆ:

 #create data frame
df <- data. frame (conf=c('East', 'East', 'West', 'West', 'North'),
                 position=c('Guard', 'Guard', 'Guard', 'Guard', 'Forward'),
                 dots=c(22, 25, 29, 13, 18))

#view data frame
df

   conf position points
1 East Guard 22
2 East Guard 25
3 West Guard 29
4 West Guard 13
5 North Forward 18

ตอนนี้สมมติว่าเราต้องการแทนที่ค่าต่อไปนี้ในกรอบข้อมูล:

  • คอลัมน์ ‘conf’:
    • แทนที่ “ตะวันออก” ด้วย “E”
    • เปลี่ยน “ตะวันตก” เป็น “W”
    • แทนที่ “เหนือ” ด้วย “N”
  • คอลัมน์ “ตำแหน่ง”:
    • เปลี่ยน “การ์ด” เป็น “G”
    • เปลี่ยน “ไปข้างหน้า” เป็น “F”

เราสามารถใช้ฟังก์ชัน mutate() และ recode() เพื่อทำสิ่งนี้:

 library (dplyr)

#replace multiple values in conf and position columns
df %>%
  mutate(conf = recode(conf, ' East ' = ' E ', ' West ' = ' W ', ' North ' = ' N '), 
         position = recode(position, ' Guard ' = ' G ', ' Forward ' = ' F '))

  conf position points
1EG 22
2 EG 25
3 WG 29
4 WG 13
5 NF 18

โปรดทราบว่าแต่ละค่าในคอลัมน์ “conf” และ “ตำแหน่ง” ถูกแทนที่ด้วยค่าเฉพาะ

โปรดทราบว่าค่าในคอลัมน์ “คะแนน” ยังคงไม่เปลี่ยนแปลง

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

บทช่วยสอนต่อไปนี้อธิบายวิธีดำเนินการงานทั่วไปอื่น ๆ โดยใช้ dplyr:

วิธีบันทึกค่าใหม่โดยใช้ dplyr
วิธีแทนที่ NA ด้วย Zero ใน dplyr
วิธีกรองแถวที่มีสตริงบางตัวโดยใช้ dplyr

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

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