如何在动物园对象中使用“!is.na”函数

时间:2013-06-20 14:02:32

标签: r zoo

我在使用动物园对象的is.na函数时遇到问题。这是我试过的:

z1 <- zoo(matrix(1:8, 4, 2), as.Date("2003-01-01") + 0:3)
z1[2,1]<-NA

所以,z1是......

2003-01-01  1 5
2003-01-02 NA 6
2003-01-03  3 7
2003-01-04  4 8

当我使用与is.na相乘的列时,我得到:

!is.na(z1[,1])*z1[,2]

它返回了:

2003-01-01 2003-01-02 2003-01-03 2003-01-04 
      TRUE      FALSE       TRUE       TRUE 

然而,当我只做TRUE * 100时,程序会返回数字:

TRUE*100
[1] 100
FALSE*100
[1] 0

我应该使用什么函数让程序返回数字而不是TRUEFALSE s(我在这里寻找动物园对象的!is.na的等效函数)?

1 个答案:

答案 0 :(得分:2)

!的优先级低于*,因此您的第一个示例将被解析为

!(is.na(z1[,1]) * z1[,2]) 

请参阅?Syntax了解R。

中的运算符优先级