如何测试对象是否为向量,即模式逻辑,数字,复杂或字符?的问题是.vector还返回列表和其他类型的TRUE:
>;is.vector(list())
[1] 真的
我想知道它是否是一个基本类型的向量。是否有本机方法,或者必须按存储模式进行
这里只有基元函数,所以我假设您想知道向量是否是原子类型之一。如果想知道对象是否是原子的,请使用is.atomic
是.atomic(逻辑())
is.atomic(整数())
is.atomic(numeric())
is.atomic(complex())
is.atomic(character())
is.atomic(raw())
is.atomic(NULL)
is.atomic(list())#is.vector==TRUE
is.atomic(expression())#is.vector==TRUE
is.atomic(pairlist())#潜在的“gotcha”:pairlist()返回NULL
is.atomic(pairlist(1))#is.vector==FALSE
如果您只对您提到的原子类型的子集感兴趣,那么最好显式测试它们:
%c(“逻辑”、“数字”、“复杂”、“字符”)中的模式(foo)%