วิธีแทนที่ na ด้วย zero ใน dplyr


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

 #replace all NA values with zero
df <- df %>% replace(is. na (.), 0)

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

 #replace NA values with zero in column named col1
df <- df %>% mutate(col1 = ifelse(is. na (col1), 0, col1))

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

 #replace NA values with zero in columns col1 and col2
df <- df %>% mutate(col1 = ifelse(is. na (col1), 0, col1),
                    col2 = ifelse(is. na (col2), 0, col2))

ตัวอย่างต่อไปนี้แสดงวิธีใช้ฟังก์ชันเหล่านี้ในทางปฏิบัติกับบล็อกข้อมูลต่อไปนี้:

 #create data frame
df <- data. frame (player=c('A', 'B', 'C', 'D', 'E'),
                 pts=c(17, 12, NA, 9, 25),
                 rebs=c(3, 3, NA, NA, 8),
                 blocks=c(1, 1, 2, 4, NA))

#view data frame
df

  player pts rebs blocks
1 to 17 3 1
2 B 12 3 1
3 C NA NA 2
4 D 9 NA 4
5 E 25 8 NA

ตัวอย่างที่ 1: แทนที่ค่า NA ทั้งหมดในคอลัมน์ทั้งหมด

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

 library (dplyr)

#replace all NA values with zero
df <- df %>% replace(is. na (.), 0)

#view data frame
df

  player pts rebs blocks
1 to 17 3 1
2 B 12 3 1
3 C 0 0 2
4 D 9 0 4
5 E 25 8 0

ตัวอย่างที่ 2: แทนที่ค่า NA ในคอลัมน์เฉพาะ

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

 library (dplyr)

#replace NA values with zero in rebs column only
df <- df %>% mutate(rebs = ifelse(is. na (rebs), 0, rebs))

#view data frame
df

  player pts rebs blocks
1 to 17 3 1
2 B 12 3 1
3 C NA 0 2
4 D 9 0 4
5 E 25 8 NA

ตัวอย่างที่ 3: แทนที่ค่า NA ในคอลัมน์ใดคอลัมน์หนึ่งจากหลายคอลัมน์

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

 library (dplyr)

#replace NA values with zero in rebs and pts columns
df <- df %>% mutate(rebs = ifelse(is. na (rebs), 0, rebs),
                    pts = ifelse(is. na (pts), 0, pts))

#view data frame
df

  player pts rebs blocks
1 to 17 3 1
2 B 12 3 1
3 C 0 0 2
4 D 9 0 4
5 E 25 8 NA

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

วิธีกรองแถวที่มีสตริงบางตัวโดยใช้ dplyr
วิธีการคำนวณความถี่สัมพัทธ์โดยใช้ dplyr
วิธีเลือกแถวแรกตามกลุ่มโดยใช้ dplyr

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

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