【问题标题】:Why does cbind give a different output to c when two numbers are used as inputs?当使用两个数字作为输入时,为什么 cbind 会为 c 提供不同的输出?
【发布时间】:2020-10-04 23:43:39
【问题描述】:

考虑以下极其简单的示例:

> c(42,50)
[1] 42 50
> cbind(42,50)
     [,1] [,2]
[1,]   42   50

显然,ccbind 给出了不同的输出。但这是为什么呢?对于像这样的简单案例,为什么它们的连接方法不一样?他们的输出之间的技术差异是什么?我原以为两者都是长度为 2 的数字向量,但 cbind 的输出显然是另一回事。

【问题讨论】:

  • 因为文档是这样说的? “值:对于默认方法,矩阵组合 ... 参数按列或按行。”
  • 您可能对我的这个关于向量和矩阵之间区别的旧答案感兴趣:stackoverflow.com/questions/33982640/…

标签: r vector concatenation


【解决方案1】:

只需 ?cvs ?cbind

c                     package:base                     R Documentation

Combine Values into a Vector or List  

cbind                   package:base                   R Documentation   

Combine R Objects by Rows or Columns

根据定义,它们是不同的。

换句话说,我认为没有理由期待相同的输出。话虽如此,为了以防万一,您可以通过以下方式获得相同的结构:

> str(as.vector(cbind(42,50)))
  num [1:2] 42 50

> str(c(42,50))  
  num [1:2] 42 50

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-09
    • 1970-01-01
    相关资源
    最近更新 更多