3.1.2 缺失数据

在 Octave 中可以使用 NA("不可用"的缩写)来显式表示缺失数据。 这有助于区分数据的属性(即某些数据未被记录)和对数据进行的计算导致的错误(即生成了 NaN 值)。简而言之,如果你没有得到预期的结果,是数据的问题还是算法的问题?

缺失数据标记是 NaN 表示的一种特殊情况。因此,它只能用于浮点数表示的数据——不能用于整数、逻辑值或字符值。

通常情况下,使用 NA 和 isna 测试来描述数据集,或将数据集缩减为仅包含有效条目。 使用 NA 进行数值计算通常会"污染"结果并以输出 NA 结束。然而,这不能在所有平台上得到保证,NA 可能被 NaN 替换。

示例 1:描述数据集

data = [1, NA, 3];
percent_missing = 100 * sum (isna (data(:))) / numel (data);
printf ('%2.0f%% of the dataset is missing\n', percent_missing);
-| 数据集有33%缺失

示例 2:仅对有效数据进行计算

raw_data = [1, NA, 3];
printf ('mean of raw data is %.1f\n', mean (raw_data));
-| 原始数据的均值是 NA
valid_data = raw_data (! isna (raw_data));
printf ('mean of valid data is %.1f\n', mean (valid_data));
-| 有效数据的均值是 2.0
 
x = NA
x = NA (n)
x = NA (m, n, …)
x = NA ([m, n, …])
x = NA (…, class)
x = NA (…, "like", var)

返回一个标量、矩阵或 N 维数组,其元素都等于用于指定缺失值的特殊常数 NA(Not Available)。

注意 NA 始终与 NA 不相等(NA != NA)。 要查找 NA 值,请使用 isna 函数。

如果不带参数调用,返回标量值 NA

如果调用时带有一个标量整数参数 n,则返回一个 N×N 方阵。

如果调用时带有两个或更多标量整数参数,或者一个整数值的向量,则返回一个具有给定维度的数组。

可选参数 class 指定返回数组的类。 有效的选项是 "double"(默认)或 "single"

编程注意:缺失数据标记 NANaN 表示的一种特殊情况。 使用 NA 进行数值计算通常会"污染"结果并以输出 NA 结束。 然而,这不能在所有平台上得到保证,NA 也可能被 NaN 替换。参见 缺失数据

另请参阅: isna

 
tf = isna (x)

返回一个逻辑数组,如果 x 的元素是 NA(缺失)值则为真,否则为假。

例如:

isna ([13, Inf, NA, NaN])
     ⇒  [ 0, 0, 1, 0 ]

另请参阅: isnanisinfisfinite


版权所有 © 2024-2026 Octave中文网

ICP备案/许可证号:黑ICP备2024030411号-4