【问题标题】:What is the dimensionality of a vector?向量的维数是多少?
【发布时间】:2018-04-12 02:36:08
【问题描述】:

我对Advanced R的this section的数据结构分类有点困惑。

特别是,数组具有未定义的维度,原子向量是 1d。你如何使用 R 来证明它?这个分类是否应该反映来自dim() 的输出?

> dim(c(1))
NULL
> dim(array(1))
[1] 1

从这个previous post 听起来像dim() 地址维度。

【问题讨论】:

    标签: r


    【解决方案1】:

    我觉得dim的返回值不是你想的那样。

    来自dim的文档:它返回

    价值

    对于数组(尤其是矩阵),dim 检索对象的 dim 属性。为 NULL 或众数整数向量。

    它不返回对象的向量空间维度(1-d、2-d 等)。

    如果一个对象没有设置dim 属性,我们可以期待NULL

    atv <- c(1)
    attributes(atv)
    # NULL
    
     
    ara <- array(1)
    attributes(ara)
    #$dim
    #[1] 1
    

    在我看来,原子向量与其他数据类型的不同之处在于没有dim 属性。只要将dim 设置为原子向量,它就会变成矩阵或数组。

    class(atv)
    # "numeric"
    
    dim(atv) <- 1
    class(atv)
    # "array"
    dim(atv)
    # 1
    

    【讨论】:

    • 那么属性dim跟维度无关?
    • @Dambo 在内部,所有 R 数据对象都是一维向量。尺寸只是其上的一层装饰,仅在有用时才定义。因此,如果被检查的对象具有这样的装饰/属性,则 dim 返回维度测量。
    • @Frank 那么为什么数组没有维度(根据本章的链接)?
    • @Dambo 在该表中,nd 代表“n 维”,如果这就是“无维”的意思,则 n >= 1。顺便说一句,如果有更长的讨论,可以去 R 聊天室:chat.stackoverflow.com/rooms/25312/r-public
    猜你喜欢
    • 2016-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-09
    • 1970-01-01
    • 1970-01-01
    • 2011-09-03
    • 1970-01-01
    相关资源
    最近更新 更多