
上QQ阅读APP看书,第一时间看更新
4-3 考虑Inf、-Inf、NA的向量运算
前一小节所介绍的向量对象是允许元素含有正无限大Inf、负无限大-Inf和缺失值NA(Not Available)。任何整数或实数值与Inf相加,结果均是Inf。任何整数或实数值与-Inf相加,结果均是-Inf。
实例ch4_31:向量对象运算,其中函数内含Inf和-Inf。

如果函数中的向量对象的参数包含NA,则运算结果是NA。
实例ch4_32:向量对象运算,其中函数的参数内含NA。

为了克服向量对象的元素可能有缺失值NA的情形,通常在函数内加上“na.rm = TRUE”参数,这样当函数碰上有向量对象的参数是NA时,也可正常运算了。
实例ch4_33:向量对象运算,其中向量对象的元素内含NA,同时函数的参数含“na.rm = TRUE”。

特别需要注意的是,diff()函数与累积函数cummax()和cummin(),无法使用去掉缺失值NA的参数“na.rm = TRUE”。
实例ch4_34:diff()和累积函数无法使用“na.rm = TRUE”参数的实例。

上述cummin()和cummax()函数由于计算到第4个向量对象的元素碰上NA,自此以后的结果皆以NA表示。对于diff()函数而言,第3个元素11和第4个元素NA比较是传回NA,第4个元素NA和第5个元素1比较也是传回NA。