【问题标题】:R matrix creatingR矩阵创建
【发布时间】:2016-04-15 19:17:50
【问题描述】:

您好,我有一个关于 R 的简短问题。 我有三个陈述:

    n=187
    a <- MatrixA[ (1):(4*n), c('x1','y') ]
    b <- MatrixA[ (1):(4*n), c('y') ]

其中矩阵 A 是一个 1250 x 2 矩阵,第一列标记为“x1”,第二列标记为“y”。

我运行命令,a 变成 748 x 2 矩阵,但是 b 是 (它说 int[1:748] blablabla)。
为什么是这样?我很困惑:这些陈述几乎相同。

我的最终目标是将 b 创建为 748 x 1 矩阵,其中包含“y”列的值。
任何帮助表示赞赏并感谢您的阅读!

关于 Rstudio:版本 0.99.893 – © 2009-2016 RStudio, Inc. Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit/601.4.4 (KHTML, like Gecko)

【问题讨论】:

    标签: r matrix


    【解决方案1】:

    当子集时,R 将尽可能简化输出。例如,如果您只选择矩阵的单列,默认情况下它将被强制转换为向量。详情请见here

    一个快速的解决方案是:

    b <- MatrixA[ (1):(4*n), c('y'), drop=FALSE]
    

    【讨论】:

    • 抱歉延迟回复。谢谢你的帮助!非常感谢。我无法想象为什么 R 认为这是一个好的设计。似乎完全不直观!
    猜你喜欢
    • 2020-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多