ตอบ: วิธีค้นหาคอลัมน์ที่มีค่าที่หายไปทั้งหมด


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

วิธีที่ 1: ใช้ Base R

 #check if each column has all missing values
all_miss <- apply(df, 2, function (x) all(is. na (x)))

#display columns with all missing values
names(all_miss[all_miss>0])   

วิธีที่ 2: ใช้แพ็คเกจ purrr

 library (purrr)

#display columns with all missing values
df %>% keep(~all(is. na (.x))) %>% names

ทั้งสองวิธีให้ผลลัพธ์ที่เหมือนกัน แต่วิธี purrr มีแนวโน้มที่จะเร็วกว่าสำหรับเฟรมข้อมูลขนาดใหญ่มาก

ตัวอย่างต่อไปนี้แสดงวิธีการใช้แต่ละวิธีกับกรอบข้อมูลต่อไปนี้ใน R:

 #create data frame
df <- data. frame (points=c(21, 15, 10, 4, 4, 9, 12, 10),
                 assists=c(NA, NA, NA, NA, NA, NA, NA, NA),
                 rebounds=c(8, 12, 14, 10, 7, 9, 8, 5),
                 steals=c(NA, NA, NA, NA, NA, NA, NA, NA))

#view data frame
df

  points assists rebounds steals
1 21 NA 8 NA
2 15 NA 12 NA
3 10 NA 14 NA
4 4 NA 10 NA
5 4 NA 7 NA
6 9 NA 9 NA
7 12 NA 8 NA
8 10 NA 5 NA

ตัวอย่างที่ 1: ค้นหาคอลัมน์ที่มีค่าที่หายไปทั้งหมดโดยใช้ Base R

รหัสต่อไปนี้แสดงวิธีค้นหาคอลัมน์ใน data frame ที่มีค่าที่หายไปทั้งหมด:

 #check if each column has all missing values
all_miss <- apply(df, 2, function (x) all(is. na (x)))

#display columns with all missing values
names(all_miss[all_miss>0])   

[1] “assists” “steals” 

จากผลลัพธ์ เราจะเห็นว่าคอลัมน์ ช่วยเหลือ และ ดักจับ มีค่าที่ขาดหายไปทั้งหมด

ตัวอย่างที่ 2: ค้นหาคอลัมน์ที่มีค่าที่หายไปทั้งหมดโดยใช้แพ็คเกจ purrr

รหัสต่อไปนี้แสดงวิธีค้นหาคอลัมน์ใน data frame ที่มีค่าที่หายไปทั้งหมดโดยใช้ฟังก์ชันจากแพ็คเกจ purrr :

 library (purrr)

#display columns with all missing values
df %>% keep(~all(is. na (.x))) %>% names

[1] “assists” “steals” 

จากผลลัพธ์ เราจะเห็นว่าคอลัมน์ ช่วยเหลือ และ ดักจับ มีค่าที่ขาดหายไปทั้งหมด

ซึ่งสอดคล้องกับผลลัพธ์ของวิธีฐาน R

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

บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการทั่วไปอื่น ๆ ที่มีค่าหายไปใน R:

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

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

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