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