วิธีแทนที่ค่าใน data frame ใน r (พร้อมตัวอย่าง)


คุณสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อแทนที่ค่าเฉพาะในกรอบข้อมูลใน R ด้วยค่าใหม่:

 df[df == ' Old Value '] <- ' New value '

คุณสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อแทนที่ค่าใดค่าหนึ่งในหลายค่าในกรอบข้อมูลด้วยค่าใหม่:

 df[df == ' Old Value 1 ' | df == ' Old Value 2 '] <- ' New value '

และคุณสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อแทนที่ค่าเฉพาะในคอลัมน์เฉพาะของกรอบข้อมูลด้วยค่าใหม่:

 df['column1'][df['column1'] == ' Old Value '] <- ' New value '

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

ตัวอย่างที่ 1: แทนที่ค่าเฉพาะในกรอบข้อมูลทั้งหมด

รหัสต่อไปนี้แสดงวิธีการแทนที่ค่าเฉพาะด้วยค่าใหม่ทั่วทั้งกรอบข้อมูล:

 #create data frame
df <- data. frame (a = as. factor (c(1, 5, 7, 8)),
                 b = c('A', 'B', 'C', 'D'),
                 c = c(14, 14, 19, 22),
                 d = c(3, 7, 14, 11))

#view data frame
df

  abcd
1 1 To 14 3
2 5 B 14 7
3 7 C 19 14
4 8 D 22 11

#replace '14' with '24' across entire data frame
df[df == 14] <- 24

#view updated data frame
df 

  abcd
1 1 To 24 3
2 5 B 24 7
3 7 C 19 24
4 8 D 22 11

ตัวอย่างที่ 2: แทนที่ค่าใดค่าหนึ่งในหลายค่าในกรอบข้อมูลทั้งหมด

รหัสต่อไปนี้แสดงวิธีแทนที่ค่าใดค่าหนึ่งด้วยค่าใหม่ทั่วทั้งกรอบข้อมูล:

 #create data frame
df <- data. frame (a = as. factor (c(1, 5, 7, 8)),
                 b = c('A', 'B', 'C', 'D'),
                 c = c(14, 14, 19, 22),
                 d = c(3, 7, 14, 11))

#view data frame
df

  abcd
1 1 To 14 3
2 5 B 14 7
3 7 C 19 14
4 8 D 22 11

#replace '14' and '19' with '24' across entire data frame
df[df == 14 | df == 19] <- 24

#view updated data frame
df

  abcd
1 1 To 24 3
2 5 B 24 7
3 7 C 24 24
4 8 D 22 11

ตัวอย่างที่ 3: แทนที่ค่าในคอลัมน์เฉพาะของกรอบข้อมูล

รหัสต่อไปนี้แสดงวิธีการแทนที่ค่าเฉพาะด้วยค่าใหม่ในคอลัมน์เฉพาะของกรอบข้อมูล:

 #create data frame
df <- data. frame (a = as. factor (c(1, 5, 7, 8)),
                 b = c('A', 'B', 'C', 'D'),
                 c = c(14, 14, 19, 22),
                 d = c(3, 7, 14, 11))

#view data frame
df

  abcd
1 1 To 14 3
2 5 B 14 7
3 7 C 19 14
4 8 D 22 11

#replace '14' in column c with '24'
df['c'][df['c'] == 14] <- 24

#view updated data frame
df 

  abcd
1 1 To 24 3
2 5 B 24 7
3 7 C 19 14
4 8 D 22 11

ตัวอย่างที่ 4: แทนที่ค่าของตัวแปรตัวประกอบในกรอบข้อมูล

หากคุณพยายามแทนที่ค่าเฉพาะของตัวแปรปัจจัย คุณจะพบข้อความเตือนต่อไปนี้:

 #create data frame
df <- data. frame (a = as. factor (c(1, 5, 7, 8)),
                 b = c('A', 'B', 'C', 'D'),
                 c = c(14, 14, 19, 22),
                 d = c(3, 7, 14, 11))

#attempt to replace '1' with '24' in column a
df['a'][df['a'] == 1] <- 24

Warning message:
In `[<-.factor`(`*tmp*`, thisvar, value = 24):
  invalid factor level, NA generated
     abcd
1 <NA> A 14 3
2 5 B 14 7
3 7 C 19 14
4 8 D 22 11

เพื่อหลีกเลี่ยงคำเตือนนี้ คุณต้องแปลงตัวแปรตัวประกอบเป็นตัวแปรตัวเลขก่อน:

 #convert column a to numeric
df$a <- as. numeric (as. character (df$a))

#replace '1' with '24' in column a
df['a'][df['a'] == 1] <- 24

#view updated data frame
df

   abcd
1 24 A 14 3
2 5 B 14 7
3 7 C 19 14
4 8 D 22 11

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

วิธีแทนที่ NAs ด้วยสตริงใน R
วิธีใส่ค่าที่หายไปทั้งหมดใน R

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

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