R语言的integer(0)

举个例子

  1. >x1=c(4,5)
  2. >which(x1==3)
  3. integer(0)
  4. > length(integer(0))
  5. [1] 0

可以看出当which() 函数没有符合条件的返回值时会返回integer(0)

虽然看起来integer(0)NULL表示的含义是很像的,但实际上两者是完全不同的:

integer(0)是一个整数向量,长度为0;NULL 表示的是空的意思

integer(0)numeric(0)logical(0)NULLNA 的区别

logical(0) 不等于 numeric(0)。两者都不是NULL值,即is.null(logical(0))is.null(numeric(0))都会返回FALSE。说明长度为零的值有时却不会为空值,NULL的定义是函数中没有被赋值的参数,特征就是没有值。如何区分NULLNA?很简单,后者的logical length是1,而前者的logical length是0,意思是假如用is.logical判断NA的逻辑值,得到的结果是TRUE。NA可以为正无穷或负无穷,但NULL永远代表的是没有这个值,一个空集的概念。

总的来说:

  1. numeric(0) == numeric(0)numeric(0) != numeric(0),返回TRUE。
  2. logical(0), numeric(0), NULL,返回FALSE。
  3. is.logical(NA),返回TRUE。