R语言 如何使用na.rm
在这篇文章中,我们将讨论如何在R编程语言中使用na.rm。R中的na.rm是用来去除NA值的。
矢量中的na.rm
当我们执行任何操作时,我们必须排除NA值,否则,结果将是NA。
语法: function(vector,na.rm)
其中
- vector是输入向量
- na.rm是指去除NA值
- function是对向量进行操作,如sum、mean、min、max等。
例1: 在这个例子中,我们要计算带有NA的平均值、总和、最小值、最大值和标准偏差。
# create a vector
data = c(1,2,3,NA,45,34,NA,NA,23)
# display
print(data)
# calculate mean including NA values
print(mean(data,na.rm=FALSE))
# calculate sum including NA values
print(sum (data,na.rm=FALSE))
# get minimum including NA values
print(min(data,na.rm=FALSE))
# get maximum including NA values
print(max(data,na.rm=FALSE))
# calculate standard deviation including
# NA values
print(sd (data,na.rm=FALSE))
输出
[1] 1 2 3 NA 45 34 NA NA 23
[1] NA
[1] NA
[1] NA
[1] NA
[1] NA
例2: 在这个例子中,我们要计算平均数、总和、最小值、最大值和标准差,没有NA
# create a vector
data = c(1,2,3,NA,45,34,NA,NA,23)
# display
print(data)
# calculate mean excluding NA values
print(mean(data,na.rm=TRUE))
# calculate sum excluding NA values
print(sum (data,na.rm=TRUE))
# get minimum excluding NA values
print(min(data,na.rm=TRUE))
# get maximum excluding NA values
print(max(data,na.rm=TRUE))
# calculate standard deviation excluding
# NA values
print(sd (data,na.rm=TRUE))
输出
[1] 1 2 3 NA 45 34 NA NA 23
[1] 18
[1] 108
[1] 1
[1] 45
[1] 18.86796
数据框架中的na.rm
我们必须使用apply函数将函数应用于带有na.rm函数的数据框架上。
语法 : apply(dataframe, 2, function, na.rm )
其中
- dataframe是输入的数据框架
- function是用来执行一些操作的,如平均数、最小数、最大值等
- 2代表列
- na.rm用于移除不确定的值
例1 :在这个例子中,我们要计算所有列的平均数、总和、最小值、最大值和标准差,不含NA。
# create a dataframe with 3 columns
data = data.frame(column1 = c(1,2,NA,34),
column2 = c(NA,34,56,NA),
column3 = c(NA,NA,32,56))
# display
print(data)
# calculate mean including NA values
apply(data, 2, mean , na.rm = FALSE)
# calculate sum including NA values
apply(data, 2, sum , na.rm = FALSE)
# calculate min including NA values
apply(data, 2, min, na.rm = FALSE)
# calculate max including NA values
apply(data, 2, max , na.rm = FALSE)
# calculate standard deviation including
# NA values
apply(data, 2, sd, na.rm = FALSE)
输出
例2: 排除NA值
# create a dataframe with 3 columns
data = data.frame(column1 = c(1,2,NA,34),
column2 = c(NA,34,56,NA),
column3 = c(NA,NA,32,56))
# display
print(data)
# calculate mean excluding NA values
apply(data, 2, mean , na.rm = TRUE)
# calculate sum excluding NA values
apply(data, 2, sum , na.rm = TRUE)
# calculate min excluding NA values
apply(data, 2, min, na.rm = TRUE)
# calculate max excluding NA values
apply(data, 2, max , na.rm = TRUE)
# calculate standard deviation excluding
# NA values
apply(data, 2, sd, na.rm = TRUE)
输出