r - 如何测试对象是否为向量

标签 r object vector

如何测试对象是否为向量,即模式 logical , numeric , complexcharacter ? is.vector 的问题是它也返回 TRUE对于列表和其他类型:

> is.vector(list())
[1] TRUE

我想知道它是否是原始类型的向量。是否有 native 方法,还是必须使用存储模式?

最佳答案

只有原始函数,所以我假设您想知道向量是否是原子类型之一。如果你想知道一个对象是否是原子的,使用 is.atomic .

is.atomic(logical())
is.atomic(integer())
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())    # potential "gotcha": pairlist() returns NULL
is.atomic(pairlist(1))   # is.vector==FALSE

如果您只对您提到的原子类型的子集感兴趣,最好明确测试它们:
mode(foo) %in% c("logical","numeric","complex","character")

关于r - 如何测试对象是否为向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19501186/

相关文章:

matlab - 向量函数始终是常数

c++ - 成员函数的“this”参数的类型为 'const' ,但我的函数实际上不是 'const'

r - 因子中具有 NA 值的 xtabs

r - R 中比例的假设

Javascript 将对象插入特定索引

c++ - 将 std::vector<char> 复制到动态 char 数组中会添加意外字符

css - 如何在 R Shiny 中设置单个单独的 selectInput 菜单的样式?

R ggplotly : legend is not correctly displayed

java - 为什么我无法在函数内创建数组对象?

javascript - 如何访问新创建的对象的变量?