วิธีแทนที่ค่าหลายค่าใน 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