如何在 r 中使用 na.rm(附示例)


在 R 中计算描述性统计时,可以使用na.rm=TRUE参数排除缺失值。

 #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 中执行缺失值的其他常见任务:

如何在 R 中使用 is.null
如何在 R 中使用 na.omit
如何在 R 中使用 is.na

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注