缺失值代码和公式<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />当我在连续数据列中设置缺失值代码,然后在引用第一列的另一列中编写公式时,该公式在计算中包含缺失值代码(-9999)。 举一个简单的例子,我有一列以开尔文为单位的温度,我在第二列中将其转换为摄氏度。 无论开尔文列中有缺失值代码,新摄氏列中的计算值都是 -10,272.15。 我希望第二列也显示缺失值代码。 我只想删除所有 -9999,但我们希望能够区分由于我们没有收集而丢失的数据和由于仪器故障而丢失的数据。 我究竟做错了什么?
回复:缺失值代码和公式这匹配函数就可以解决问题。来自脚本指南:
匹配
您可以使用匹配()函数可以进行多次相等比较,而无需重写要比较的值。 语法是:
匹配( X ,值1 ,结果1 ,值2 ,结果2 , ... ,结果否则)
例如,以下脚本重新编码性别缩写大类.jmp :
对于每一行(
性别=匹配(性别, “F” , “女性” , “M” , “男性” , “未知” )
) ;
回复:缺失值代码和公式这个可以做到。
(匹配( :温度_开尔文, - 9999 , 0 , :温度_开尔文) +
匹配( :温度2_开尔文, - 9999 , 0 , :温度2_开尔文) +
匹配( :温度3_开尔文, - 9999 , 0 , :温度3_开尔文) )
/
(匹配( :温度_开尔文, - 9999 , 0 , 1 ) +
匹配( :温度2_开尔文, - 9999 , 0 , 1 ) +
匹配( :温度3_开尔文, - 9999 , 0 , 1 ) )
回复:缺失值代码和公式谢谢PMRoz,但我想知道是否可以取没有-9999的两列的平均值(如果缺少一列),或者只使用有数据的一列中的值(如果其他都值缺失)。 例如:
土壤温度 1、土壤温度 2、土壤温度 3
287.1、289.3、288.6
-9999、286.6、287.9
-9999, 287.5, -9999
-9999, -9999, -9999
我想取第一行中所有三个值的平均值,第二行中的第 2 列和第 3 列,使用第三行中的第 2 列的值,并为第四行返回 -9999。 这可以通过条件语句实现吗?
回复:缺失值代码和公式不需要 JMP 12。下面是一个 IF 语句示例,如果三列都不为 -9999,则对三列求平均值:
如果( :温度_开尔文!= - 9999 &
:温度2_开尔文!= - 9999 &
:温度3_开尔文!= - 9999 ,
( :温度_开尔文+ :温度2_开尔文+ :温度3_开尔文) / 3 ;
) ;
回复:缺失值代码和公式谢谢你的回答,杰夫。 我正在使用 JMP 11,但我想我的示例太简单,无法阐明真正的问题。 当我尝试对 3 列进行平均时,我不确定如何编写处理 -9999 的条件语句(或多个语句)。 例如,我有 3 列土壤温度数据,有时其中一列、两列或三列会有 -9999。 这个编程超出了我的理解水平。 也许我应该买 JMP 12... 任何见解将不胜感激!
回复:缺失值代码和公式您使用什么版本的 JMP?
我们通过 JMP 12 改变了这种行为。 公式编辑器中的函数现在遵循缺失值代码属性。 早期版本(正如您所发现的)没有这样做。
如果您想在 JMP 11 及更早版本的转换中考虑到这一点,则需要在公式中添加条件。

If(:Temp Kelvin == -9999, -9999, :Temp Kelvin - 272.15)
-杰夫