R语言的integer(0)
举个例子
>x1=c(4,5)
>which(x1==3)
integer(0)
> length(integer(0))
[1] 0
可以看出当which()
函数没有符合条件的返回值时会返回integer(0)
虽然看起来integer(0)
和NULL
表示的含义是很像的,但实际上两者是完全不同的:
integer(0)
是一个整数向量,长度为0;NULL
表示的是空的意思
integer(0)
,numeric(0)
,logical(0)
,NULL
,NA
的区别
logical(0)
不等于 numeric(0)
。两者都不是NULL
值,即is.null(logical(0))
和is.null(numeric(0))
都会返回FALSE。说明长度为零的值有时却不会为空值,NULL
的定义是函数中没有被赋值的参数,特征就是没有值。如何区分NULL
和NA
?很简单,后者的logical length是1,而前者的logical length是0,意思是假如用is.logical
判断NA的逻辑值,得到的结果是TRUE。NA
可以为正无穷或负无穷,但NULL
永远代表的是没有这个值,一个空集的概念。
总的来说:
numeric(0) == numeric(0)
和numeric(0) != numeric(0)
,返回TRUE。logical(0)
,numeric(0)
,NULL
,返回FALSE。is.logical(NA)
,返回TRUE。