📅  最后修改于: 2023-12-03 15:38:54.591000             🧑  作者: Mango
在处理数据时,经常需要统计某个向量或数据框中非缺失值的数量。R 语言提供了许多不同的函数和方法来实现这个目的。本文将介绍其中的几种方法。
使用 sum(is.na(x))
可以计算向量或数据框中缺失值的数量。对于非缺失值,使用 !is.na(x)
将其转换为逻辑值,然后再使用 sum()
计算其数量。以下是示例代码:
# 创建示例数据
x <- c(1, 2, NA, 4, NA)
# 计算缺失值数量
sum(is.na(x))
#> [1] 2
# 计算非缺失值数量
sum(!is.na(x))
#> [1] 3
另一种统计非缺失值数量的方法是使用 na.omit()
函数。该函数从向量或数据框中删除所有缺失值,并返回一个新的对象。我们可以使用 length()
函数来计算该对象的长度。以下是示例代码:
# 创建示例数据
x <- c(1, 2, NA, 4, NA)
# 计算非缺失值数量
length(na.omit(x))
#> [1] 3
与 na.omit()
相似的是 complete.cases()
函数也可以删除缺失值。但是,该函数返回一个逻辑向量,其中 TRUE 表示该行或列没有缺失值,FALSE 表示有缺失值。我们可以使用 lengths()
函数来计算每个维度中非缺失值数量。以下是示例代码:
# 创建示例数据
x <- data.frame(a = c(1, 2, NA), b = c(4, NA, 6))
# 计算每列中的非缺失值数量
lengths(complete.cases(x))
#> a b
#> 2 2
使用 apply()
函数可以计算每个维度中的非缺失值数量。我们需要指定 MARGIN
参数,其值为 1 表示按行计算,值为 2 表示按列计算。对于表格型数据,行代表观测值,列代表变量,通常使用 MARGIN = 2
来计算每个变量中的非缺失值数量。以下是示例代码:
# 创建示例数据
x <- data.frame(a = c(1, 2, NA), b = c(4, NA, 6))
# 计算每列中的非缺失值数量
apply(x, 2, function(x) sum(!is.na(x)))
#> a b
#> 2 2
以上介绍了几种计算 R 语言中非缺失值数量的方法。不同的方法适用于不同的数据类型和分析需求。根据实际情况选择最合适的方法可以提高代码的效率和可读性。