วิธีใช้ na.rm ใน r (พร้อมตัวอย่าง)


คุณสามารถใช้อาร์กิวเมนต์ na.rm=TRUE เพื่อยกเว้นค่าที่หายไปเมื่อคำนวณสถิติเชิงพรรณนาใน R

 #calculate mean and exclude missing values
mean(x, na. rm = TRUE )

#calculate sum and exclude missing values 
sum(x, na. rm = TRUE )

#calculate maximum and exclude missing values 
max(x, na. rm = TRUE )

#calculate standard deviation and exclude missing values 
sd(x, na. rm = TRUE )

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

ตัวอย่างที่ 1: การใช้ na.rm กับเวกเตอร์

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

 #define vector with some missing values
x <- c(3, 4, 5, 5, 7, NA, 12, NA, 16)

mean(x)

[1] NA

sum(x)

[1] NA

max(x)

[1] NA

sd(x)

[1] NA

แต่ละฟังก์ชันเหล่านี้จะส่งกลับค่า NA

หากต้องการยกเว้นค่าที่หายไปเมื่อทำการคำนวณเหล่านี้ เราสามารถรวมอาร์กิวเมนต์ na.rm = TRUE ได้ดังนี้:

 #define vector with some missing values
x <- c(3, 4, 5, 5, 7, NA, 12, NA, 16)

mean(x, na. rm = TRUE )

[1] 7.428571

sum(x, na. rm = TRUE )

[1] 52

max(x, na. rm = TRUE )

[1] 16

sd(x, na. rm = TRUE )

[1] 4.790864

โปรดทราบว่าเราสามารถทำการคำนวณแต่ละครั้งได้สำเร็จโดยไม่รวมค่าที่หายไป

ตัวอย่างที่ 2: การใช้ na.rm กับเฟรมข้อมูล

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

 #create data frame
df <- data. frame (var1=c(1, 3, 3, 4, 5),
                 var2=c(7, 7, NA, 3, 2),
                 var3=c(3, 3, NA, 6, 8),
                 var4=c(1, 1, 2, 8, NA))

#view data frame
df

  var1 var2 var3 var4
1 1 7 3 1
2 3 7 3 1
3 3 NA NA 2
4 4 3 6 8
5 5 2 8 NA

เราสามารถใช้ฟังก์ชัน Apply() เพื่อคำนวณสถิติเชิงพรรณนาสำหรับแต่ละคอลัมน์ในกรอบข้อมูล และใช้อาร์กิวเมนต์ na.rm = TRUE เพื่อแยกค่าที่หายไปเมื่อทำการคำนวณเหล่านี้:

 #calculate mean of each column
apply(df, 2, mean, na. rm = TRUE )

var1 var2 var3 var4 
3.20 4.75 5.00 3.00 

#calculate sum of each column
apply(df, 2, sum, na. rm = TRUE )

var1 var2 var3 var4 
  16 19 20 12 

#calculate max of each column
apply(df, 2, max, na. rm = TRUE )

var1 var2 var3 var4 
   5 7 8 8 

#calculate standard deviation of each column
apply(df, 2, sd, na. rm = TRUE )

    var1 var2 var3 var4 
1.483240 2.629956 2.449490 3.366502

เป็นอีกครั้งที่เราสามารถดำเนินการคำนวณแต่ละครั้งได้สำเร็จโดยไม่รวมค่าที่หายไป

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

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

วิธีใช้ is.null ใน R
วิธีใช้ na.omit ใน R
วิธีใช้ is.na ใน R

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

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